AtCoder Beginner Contest 278
咕咕咕。
D - All Assign Point Add
把数拆分成 。 就是操作一设置的数,初始时认为 ; 的维护可以有两种方法。
一种是我比赛时的做法,类似树状数组的时间戳优化额外维护一个时间戳,时间戳对不上就先清空一下。树状数组的时间戳优化可以参考oi wiki。
另外一种是官方题解的做法,就存一下操作二的修改,有操作一就清空。因为操作数为 ,所以至多清空 次。
E - Grid Filling
注意到 都挺小的。
可以在 的时间内,枚举每个数字,借助二维前缀和预处理出这个数字在左上角为 右下角为 这个矩形内的数量,之后借助矩形容斥可以 查询任意矩形内这个数的数量。
然后枚举被删去的那个矩形,再枚举每个数,如果这个数不是仅出现在被删去的矩形内,那么对答案就有 的贡献。这个过程复杂度也为 。
F - Shiritori
简单 DAG 上博弈。
对于一个状态 ,枚举它所有的后继状态,只要有一个先手必败的后继状态, 就是先手必胜,如果一个先手必败的后继状态都没有 就是先手必败。
参数都挺小的直接 DFS 就能过了。
G - Generalized Subtraction Game
假设现在是两段长度相同的卡牌,那么一定是后手必胜。因为假设先手操作其中一段,后手就在另外一段上复刻这个操作,这样一定是先手无法操作。即Tweedledum-Tweedledee Strategy。
在 且 为奇数时无法使用这个策略。但是此时长度已经固定了,可以借助 SG 函数确定一个状态是先手必胜还是先手必败。
根据 SG 判断先手操作还是后手操作。
后续的操作,由于操作长度已经固定了,所以可行的操作至多有 个,每次可以暴力枚举,枚举到一个先手必败的后继状态就操作。至多操作 次,所以时间复杂度为 。
Ex - make 1
To be solved.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现