- 博客(118)
- 收藏
- 关注
原创 P4316 绿豆蛙的归宿
的概率, 通过刷表进行状态计算。开始, 假设下一个节点是。, 那么状态转移就会变成。, 将当前节点加入到队列。的度数, 如果节点度数。, 那么状态转移就是。
2025-05-30 17:35:48
685
原创 P3147 [USACO16OPEN] 262144 P
从小到大枚举, 递推就能计算出当前状态, 算法时间复杂度。那么可以记录到答案中, 状态转移依赖。的右边界是什么位置(开区间),, 如何进行状态转移?并且合并出的最大值是。, 可以尝试合并两个。
2025-05-20 14:18:02
327
原创 P4310 绝世好题
为结尾的最长的符合条件的子序列的长度, 那么需要枚举上一个位置。的所有子序列中长度最长的子序列, 考虑如何进行状态转移。不能从该状态转移过来, 那么能够转移的状态就是。发现直接优化状态计算没办法优化, 考虑。的最大值, 如果直接枚举时间复杂度是。更新最大值, 然后得到最大后再更新。每加入一个数字, 枚举所有位置。会超时, 需要进行优化。, 假设定义状态表示。, 检查每一位是否是。
2025-05-20 10:23:54
608
原创 算法竞赛进阶指南.异象石
来计算, 答案就是一半, 因为每条边被计算了两次, 由于石头会添加和删除, 可以使用。首先观察树的性质, 因为在树中任意两个点之间只有一条路径, 因此最终求得就是。, 那么问题就变成了如何计算边权和,
2025-05-07 18:24:51
648
原创 算法竞赛进阶指南.雨天的尾巴
因为点数和边数都非常大, 因此需要设计一个高效的算法, 由于是对树的路径上信息进行处理, 可以使用树上差分对树的两个端点进行操作, 但是因为每个点记录多个信息, 可以使用线段树, 然后再。过程中, 进行线段树合并。
2025-05-05 14:05:26
422
原创 算法竞赛进阶指南.巡逻
如果可以建造两条道路, 可以找到树的最长路径和次长路径, 然后分别在两端设置路径。, 再进行统计直径, 因为边权是负数不会产生贡献, 那么。条边 使得从起点开始走访问所有的点, 使得总的。添加一条边, 如上图, 树的直径是粉色线段设为。可以在计算完最长路径后, 将路径上的边权标志为。, 如果当前巡逻到最下面的点如果不添加边需要。, 因为原图是树, 因此最初的巡回距离是。, 将问题分为两部分, 首先是添加一条边。的长度, 如果添加一条边, 路径长度变为。因为每个点被访问一次, 算法时间复杂度。
2025-05-02 14:54:58
984
原创 算法竞赛进阶指南.黑暗城堡
统计每个点可能被更新的次数, 根据。在非负权图中, 选择的过程就是。最短路径树就是在图中通过算法。, 相乘就是能构成的树的数量。答案就是有多少棵最短路径树。号点为起点的最短路径树就是。算法的过程, 每次选择到。号点距离最小的点进行更新。
2025-04-30 14:52:18
407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人