logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

UVa 967 Circular

本题的关键在于高效地判断循环素数并快速回答范围查询。通过欧拉筛法预处理素数,然后对每个素数检查其所有循环移位是否都是素数。循环移位的计算通过数值操作完成,避免了字符串转换的开销。使用二分查找在有序素数数组中快速判断一个数是否为素数。最后,通过前缀和数组实现O1O(1)O1的范围查询。整体算法在给定数据规模下运行效率高,时间复杂度约为OMAXNπMAXN×LOMAXNπMAXN×L,空间复杂度为OM

文章图片
#算法
UVa 12040 Again Lucky Numbers

该题目要求计算不包含给定不吉利数字 $M$ 作为子串的 $N$ 位数的个数。通过构建基于 KMP 自动机的动态规划方法,可以高效解决这一问题。具体步骤包括:1) 构建 KMP 自动机转移表;2) 使用动态规划递推允许前导零的数字串数目;3) 通过容斥处理首位为零的情况得到最终答案。该方法的时间复杂度为 $O(T \cdot N \cdot |M| \cdot 10)$,适用于题目给定的约束条件。

文章图片
#算法#青少年编程
UVa 1622 Robot

题目要求在N×M网格中,所有机器人按四种方向指令移动,移出网格的机器人被摧毁。目标是合理安排指令顺序,使机器人执行指令的总次数最大化。关键在于优先执行不增加历史跨度的配对指令(如NORTH-SOUTH交替),再处理剩余单向指令。通过贪心策略比较行列剩余空间,每次选择收益更大的方向执行。算法复杂度为O(总指令数),适用于大规模输入。样例中,当优先执行配对指令时,总执行次数达到最大。

文章图片
#算法#青少年编程
UVa 731 Numerical Summation of a Series

本文讨论如何高效计算级数ψ(x)=∑(k=1→∞)1/[k(k+x)]在x=0.0到300.0范围内的值,要求相对误差小于10⁻¹⁰。直接计算会遇到收敛慢和舍入误差问题。通过将ψ(x)转化为digamma函数ψ(x)=[γ+digamma(x+1)]/x,其中γ为欧拉常数,并利用递推关系和大x渐近展开式进行高效计算。对于x=0,直接取ψ(0)=π²/6。算法使用long double保证精度,输出

文章图片
#算法#青少年编程
UVa 11253 Fractal

本文探讨了龙曲线(Dragon Curve)分形路径下机器人移动坐标的计算问题。给定递归生成的二进制字符串序列 ( s_n ),机器人根据字符串指令移动和转向。由于直接模拟 ( n ) 步(( n \leq 10^9 ))不可行,我们利用分形结构的自相似性设计递归算法:预计算各层级完整路径的位移和方向,再通过分解问题规模快速求解任意时刻的坐标。核心在于递归处理路径前缀时,结合向量运算和方向旋转,将

文章图片
#算法#青少年编程
The Pragmatic Programmer 读书笔记之一 DRY-Don’t Repeat Youself

The PragmaticProgrammer读书笔记之一DRY-Don’t RepeatYouself 虽然自己买了很多软件工程方面的书,但是因为时间的问题,一直没有静下心来充充电。最近因为感觉自己在编程方面迫切需要有进一步的提高,于是打算好好的研读一下AndrewHunt和David Thomas合著的《ThePragmatic Prog

#软件工程
UVa 824 Coast Tracker

本题通过模拟机器人感知和决策过程,实现海岸线跟踪。核心策略是从当前朝向开始顺时针扫描邻域,选择第一个陆地格子作为下一步移动方向。这种贪心策略确保机器人沿逆时针方向紧贴海岸移动。输入中的相对坐标需转换为局部索引,便于查找。该算法时间复杂度O1O(1)O1,空间O1O(1)O1,适用于在线决策。理解方向编码和扫描顺序是解题关键。

文章图片
#算法
UVa 1335 Beijing Guards

摘要 题目考察环形相邻约束下的资源分配问题。给定n个环形排列的守卫,每个守卫需要一定数量的奖项,且相邻守卫不能获得相同奖项。要求确定满足条件的最小奖项类型数x。关键思路是:当n为偶数时,x取相邻需求和的最大值;当n为奇数时,采用二分法结合贪心策略验证可行性。贪心验证通过交替分配两类奖项池(相同/不同)来确保约束条件,时间复杂度为O(n log maxAnswer)。最终解答需处理环形特例,如单独守

文章图片
#算法
UVa 12484 Cards

本文讨论了Alberto和Wanderley进行的卡牌游戏,这是一个典型的零和博弈问题。使用动态规划方法,定义状态dp[i][j]表示剩下i到j张牌时当前玩家能比对手多得的分差。根据N的奇偶性判断当前玩家,分别采取最大化或最小化策略。通过空间优化将复杂度降为O(N^2)时间和O(N)空间。最终利用总分和分差公式计算Alberto的得分。这种基于相对分数差的动态规划思路适用于类似的零和博弈问题。

文章图片
#算法#c++#青少年编程
UVa 1282 Fibonacci Words

本文研究斐波那契单词序列中的模式匹配问题。斐波那契单词通过字符串拼接递归定义,其长度呈指数增长。针对给定模式串p和整数n,要求计算p在F(n)中的出现次数。主要难点在于处理指数级增长的字符串长度和重叠匹配。 解决方案结合记忆化递归与KMP算法:1) 设计数据结构存储匹配次数和边界字符;2) 利用斐波那契递归结构分治计算;3) 通过KMP高效统计匹配,特别处理跨接情况。

文章图片
#算法#c++#青少年编程
    共 91 条
  • 1
  • 2
  • 3
  • 10
  • 请选择