A. TreeScript
你需要生成一棵给定的有根树,每个节点被创造的时候必须知道它的父节点的寄存器,并且在创造的时候可以将自己的地址丢到某一个寄存器中,初始情况下根的地址存在 里,求最少用多少寄存器。
考虑树上 DP,令 表示以 为根的子树的答案,则有 ,其中 是从小到大排序的。
B. Big Picture
有一个 行, 列的白色网格,对于每一行 ,有 的概率涂一个长度为 的前缀(),对于每一列 ,有 的概率涂一个长度为 的前缀(),求最终连通块数期望。

黑色连通块只有一个,每一个白色连通块内有且仅有一个格子满足其右边和下面的格子都是黑的,前缀和维护概率即可。
C. Painting Grid
给一个 行 列网格的每个格子涂上黑色或白色,使得黑色格子的数量等于白色格子的数量,并且每行的涂色方案两两不同,每列的涂色方案也两两不同。
,多测。
首先特判掉 为奇数的情况,然后不妨设 。
位二进制数一共有 ,若 ,一定会重复,不存在方案,于是我们只需要对于 的情况构造方案即可。不妨先构造第 行,考虑分治法,假设要填第 行第 列,若区间长度是偶数,则前一半填 0,后一半填 1,否则0、1中哪个数少就多填一个,这样就可以保证在第 行填完后 01 的差最多是 ,再填一行可以保证差恰好为 0。
再考虑补充到 行,此时每列一定是互不相同的,只需要保证各行互不相同即可。我们只需要在 行中挑出 行,且 。只需要不断随机选一个串 ,然后把它及其反串填上去即可。当 的时候出错的概率忽略不计, 的情况下检查答案并且重 roll 的复杂度是可以接受的。
E. Goose, goose, DUCK?
给定数组 和整数 ,求有多少个区间满足不存在任意一个整数 ,使得 在该区间内 恰好出现 次。
对于每个整数 ,有若干组限制:若 ,则 。限制总数是 的,然后就是经典扫描线。
F. Sum of Numbers
有一个大整数,由 租场,在里面插入 个加号,最后形成的表达式结果最小是多少。
加号一定大致均分位数,每段长度可能为平均长度 +1,+0,-1。搜索即可。
H. Another Goose Goose Duck Problem
你要攻击 个怪物,每只怪物 秒出现一次,你可以钦定攻击间隔为 中的一个数,一开始不可攻击,求全部击杀的用时。
选 最优,答案为 。
K. Maximum GCD
给一个数组 ,进行任意次操作,每次操作任意选择 ,然后 。求最后整个数组的 最大可能为多少,且 。
从小到大排序,然后去重, 这个操作等价于让 变成 中的任意一个数。显然答案在 内。任意一个答案可以等效为对前缀 求一个 ,然后与 找一个最大的 。但是答案在 内,于是这个前缀 gcd 必然是 或 才有可能成为答案。你只需要判断答案是否为 或 即可。
- 若 或 ,即 时答案取 。
- 若 为偶数,一定可以取 ,因为 ,因此减一除二之后恰好为 。
- 其余情况为 。
L. Delete Permutation
给一个排列 ,要删除一些元素,使其变成数组 ,有 个删除工具,每个工具可以选择一个长度为 的区间,删掉里面最大的数,每个工具只能用一次。求是否能够删成数组 。
由于是排列,所以删除方案是唯一的,每次删掉最大的一个就可以了。用 multiset
维护工具,并用树状数组维护剩余的数,模拟以上过程。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)