- 博客(10)
- 收藏
- 关注
原创 如何扔掉计算器,手撕根号
本文介绍手算平方根的分级迭代法:从小数点起每两位分一级,逐级求最大平方根位;将已得结果末位翻倍,构造乘积最接近当前余数,迭代至所需精度。证明通过将平方差展开为递推形式,说明每次翻倍末位即可逼近真实平方根。
2026-08-31 20:59:46
242
原创 AT_abc472_e 题解
本文介绍了如何判断图中是否存在奇环的方法。通过二分图染色原理,若图不是二分图则存在奇环。采用黑白交替染色法进行判定,并用栈结构记录路径以构造奇环。文章包含参考代码,展示了DFS实现染色检测和奇环构造的过程。最终输出奇环或-1表示无解。
2026-08-24 16:41:37
314
原创 AT_abc471_c Cookies and Greedy Takahashi题解
本文介绍了AT_abc471_c题的解题思路。通过升序排序后,使用双向链表数据结构在O(1)~O(log n)时间内查询和删除邻接节点,有效解决问题。代码实现采用数组模拟链表,通过二分查找定位位置,维护左右指针来动态更新链表结构,最终计算答案。
2026-08-15 22:49:49
199
原创 [CEOI 1997] 多米诺骨牌 题解
这篇题解介绍了一种解决多米诺骨牌问题的动态规划方法。题目要求使骨牌点数和之差最小的情况下,旋转次数最少。由于直接处理绝对值较难,作者采用去掉绝对值的策略,定义状态dp[i][j]表示前i个骨牌差值为j时的最少旋转次数。 状态转移方程为:dp[i][j] = min(dp[i-1][j+d_i]+1, dp[i-1][j-d_i]),其中d_i是当前骨牌两面的差值。通过偏移量rev处理负差值,最后遍历可能的差值找到最优解。 参考代码实现了这一思路,使用动态规划数组记录状态,并在最后寻找最小差值的解。这种方法巧
2026-08-09 16:32:56
204
原创 [ROIR 2019] 探险队 (Day 2) 题解
摘要 本文解决了一个基环树森林上的最大独立集问题。通过分析题目特点,将问题转化为处理多个基环树结构。对于每棵基环树,采用以下步骤: 使用时间戳法检测环 对环上每个点执行树形DP(类似"没有上司的舞会") 进行环形DP计算最大值 最终将所有基环树的结果累加得到答案。该方法巧妙地将树形DP扩展到基环树结构,时间复杂度为O(n)。文章提供了详细思路和参考代码实现。
2026-08-09 16:32:42
180
原创 [AGM 2022 资格赛] 分裂 题解
这是一道关于数组划分的动态规划问题。作者通过分析发现直接DP会超时,转而采用更高效的状态定义和转移方式。定义dp[i][j][k]表示前i个元素已划分j段且状态为k时的最大得分,其中k表示最大值、最小值的配对状态。通过状态压缩和滚动数组优化,将时间复杂度降至可接受范围。最终答案为dp[n][K][0],即完整划分K段后的最大得分。代码实现使用位运算优化空间,并通过幂函数计算得分差值。
2026-08-08 12:39:29
155
原创 AT_abc469_d Cantrip 题解
本文分析了AT_abc469_d Cantrip问题的解法。通过统计前i个袋子中“命中”和“未中”的数量,采用倒序枚举策略。主要思路是:当遇到“未中”袋子时,高桥会减少手中袋子数量;找到满足条件的第一个袋子k,使得后续可以继续操作。代码实现中维护了哈希表来记录位置,最终输出每个袋子的结果。解法时间复杂度为O(n),适用于大规模数据。
2026-08-08 12:36:49
20
原创 题解:Mivik 写书
本文介绍了一道关于期望计算的组合数学题的解法。题目要求计算特定条件下字符串的期望值,采用容斥原理和状态枚举的方法,避免了直接枚举所有情况导致的时间复杂度过高。通过二进制状态表示限制条件,利用并查集维护字符相等的连通块,最终根据连通块数量和容斥系数计算贡献。代码实现了这一思路,使用快速幂和模运算处理大数问题。该方法适用于小规模数据(n≤10),有效降低了计算复杂度。
2026-07-18 19:29:29
22
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅