CF1404 Div1 VP记录
A
略
B
看到这道题的第一眼:Bob 怎么赢?
样例二给了解释,对于一条链,Bob 看 Alice 到了哪边,跳到另一边即可。
大胆猜测,这是 Bob 能赢的唯一机会。其他时候 Alice 采用步步逼近一定能取得胜利(详情请参见国际象棋中的单后杀王)。
使用这个方法要满足三个条件:
-
。否则 Bob 逃不出 Alice 的抓捕范围。
-
树上直径也要大于 。否则 Bob 空有 也没用。
-
Alice 第一步不能直接将 Bob 干掉。
依次判断即可。
C
考虑离线。对于, 表示询问为 的答案。
当 变为 时,只有 的 才会 +1(此处只考虑 的情况,大于的情况显然永远不可能满足)。
于是树状数组 + 二分即可。
D
通过这迷惑的题意,我们大胆猜测无论哪种情况下,必定有一方有必胜策略。
根据样例,大胆猜测当 为偶数时,作为配对的人, 与 放一组即可。
思考最终选出的和,必定是 的形式。其中 为选了多少个大于 的数。
这绝对不可能是 的倍数,因为这个式子可以化成 ,括号内压根不是个整数,自然也不可能是 的倍数。
因此我们只要考虑 为奇数的情况。揣测一下出题人的意图,我们猜测此时选择方有必胜策略。
不难发现,当 为奇数时,只要对于每个 与 中选择一个,结果(也就是上面的式子)只有两种情况:是偶数,或者反着选就是偶数。
问题变成了: 和 不能同时选,同时还有额外 组 和 不能同时选,求出一种选择方案。
如果将所有限制连边且允许重边,每个点有且仅有两条边与之相连,因此整个图必定是若干个环。
又因为环上相邻的点不能同时选,所以我们隔一个选一个即可。
E
每个点只有两种情况:竖着或横着。且两者只能选择一种。我们不妨用两个格子中间的分界线作为竖放和横放的标志。
因此,如果一个点有两种消除边界线的方式,我们就把他们两个连边。显然,连完边后是一张二分图,其中所有竖着放置的方案在一边,横着的在另一边。
在这个图上选取的点都能使答案减小,因此我们希望选取最多的点。这就变成了一个最大独立集的问题。
用匈牙利算法求解即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异