计算机理论
poj 2385 Apple Catching 0ms
POJ 2385 Apple Catching是经典的动态规划问题,通过三维数组优化实现0ms高效解法。算法核心在于状态转移方程的设计,利用mov函数巧妙处理位置变换,消除冗余循环层。题目要求计算最多移动W次情况下能接到的最大苹果数,采用DP方法有效降低了时间复杂度。
2018年7月14日
poj 2229 Sumsets
POJ 2229 Sumsets是一道动态规划经典题目,探讨整数分解为2的幂次方之和的方案数计算。通过分析数字特征,建立递推关系:偶数时考虑i/2的方案数,奇数时直接继承前一项结果。算法时间复杂度O(n),空间复杂度O(n),关键在于识别2的幂次方分解规律并正确处理模运算。
2018年7月12日
poj 3176 Cow Bowling
poj 3176 Cow Bowling是经典的动态规划问题,采用二维数组存储三角形数据结构。通过自顶向下递推方式,利用状态转移方程计算最大路径和。代码实现包含数组初始化、边界处理和最优子结构构建等关键步骤,时间复杂度O(n²),空间复杂度O(n²),适用于解决数字三角形求解最值的经典算法题型。
2018年7月11日
Poj 3262 Protecting the Flowers
Poj 3262 Protecting the Flowers 是一道经典的贪心算法问题。通过分析代价公式 cost = 2 * T * (total - D),得出按 D/T 比值排序的贪心策略。C++实现采用结构体存储数据,自定义比较函数进行排序,最终计算最小保护代价。该解法时间复杂度为 O(nlogn),空间复杂度为 O(n),是贪心算法的经典应用案例。
2018年7月11日
poj 1017 Packets
POJ 1017 Packets是经典的贪心算法问题,涉及不同尺寸包裹的最优装箱策略。解法采用贪心思想,优先处理大尺寸包裹,通过数学计算确定6x6、5x5等各规格包裹的最优组合方案。代码实现包含完整的装箱逻辑和边界条件处理,时间复杂度O(1),空间复杂度O(1),适用于各类装箱优化场景。
2018年7月10日
poj 3040 Allowance
POJ 3040 Allowance是一道经典的贪心算法题目,涉及货币分配优化问题。通过C++实现的解决方案采用双阶段贪心策略:首先从大面额硬币开始贪心选择,然后用小面额补充至目标值。算法核心在于每次构造最优组合方案,并计算最大可重复次数,最终实现周津贴分配的最大化。
2018年7月10日
LeetCode题解:最长回文串之manacher算法
Manacher算法又称马拉车算法,可将最长回文串求解复杂度降至O(N)。该算法通过插入特殊符号处理奇偶长度回文串,利用对称性质优化计算过程。核心思想是以当前最大回文串边界为基础,通过中心点对称规律减少重复比较,显著提升性能。配合Go语言实现,有效解决传统暴力解法超时问题。
2018年4月17日
