NOIP2024模拟赛21
省流:没过 T1,玩了 1h 俄罗斯,不好评价。
还好 T3 一个小时写完了平方暴力,还没菜到离谱,感觉这才是一个正常的分数。但是好像正解要不到 1h?
T2 的 dp 优化是我弱项,做不出正常,spdarkle 是真逆天。怎么一眼的怎么一眼的怎么一眼的怎么一眼的怎么一眼的怎么一眼的怎么一眼的。
发现后面又是一堆人,我怎么又没垫底。
算了天天好心情,把题补了再说。
T1 神经贪心。肯定要先尽可能匹配,然后你每次额外计算后面接一个小的花费。
T2 注意到最后点数是值域级别,显然不可做。注意到不存在跨越计数的情况,即:一定是所有相邻的两个
我们考虑把每一层拉出来进行转移。考虑把每相邻两个
实际上就是每次向右/右下走的最长路径。这个可以分层 dp 做了。(对于满的一层你肯定是最左到最右)
但是最后一层不是满的情况,非常不好做啊。发现性质:
-
若有一棵子树是满的,那么所有点都有右儿子。证明:根据向下取整,右儿子严格多/强于左儿子。
-
方案:【先走上一层的一些点,然后再走下来把这一层剩下的走完】可以被只走 1 层的所有点替换。证明根据上面那个性质。
然后你跨越转移和同层转移的代价就好算了,只有最后一层不满的时候有区别。然后用前缀优化到线性对数 dp。
T3:
我有一个平方的 dp 做法,并且还需要把 3 次方的合并优化成平方。
和正解不知道有什么联系,直接看正解:
给我讲题的是 zyr,后面忘了。
先对于每个点
枚举其
-
前缀和后缀最大值都要大于等于
。 -
要大于当前的 或 。
其实最难的就是第一个限制,可以根据套路进行容斥:
-
直接计算复杂度单次就平方了,直接爆。
-
容斥 1:总方案数 减去 存在一边最大值小于
的情况。 -
容斥 2:后面那个 等于 钦定前缀全部小于
加上 钦定后缀全部小于 减去 全局全部一个小于 的方案数。
维护
上面是一部分,首先我们要优化枚举
别忘了我们的容斥基础是:
然后就可以线段树每次单点修改全局查询了。
虽然独立完成代码花了许久,但还是有收获的。我觉得比直接交 zyr 代码好。毕竟我是从小到大枚举,这要是直接抄代码肯定是改不过来的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!