NOIPro 模拟赛 | R15
习惯了谎话,早已分不清真假。
其实这场出得还挺好的,让我们为出题人点赞!
T1
做了 45 分钟,废了。
首先想到:从小到大加数,然后加到合法的时候再回来删除多余数。
很容易被 hack,比如前面有 2,3 把左边覆盖完了,中间来一个 4。最终我们必定将这个 4 删掉,显然不优。
场上根据这个反例就发现中间一行、一列的点非常重要,然后手搓了一下样例发现:选择的数不会很多。
又:一个数至少会覆盖一个角。
于是大胆猜测:至多选择 4 个数。看上去也是比较显然的,因为一个角的位置用 2 个位置覆盖真的不优。
那么根据选择多少数讨论就做完了。
T2
首先理解题意,然后注意到
后面只需要 b 单调不增,这个是经典结论,
前面的
赛后我惊讶的发现,有些人和我是相反的。只能说太神奇了。
注意到我们前面优化 dp 时根据 a 推出了上一个 b 的范围。
写出的式子化简后变成:
这个时候转化成差分,然后根据
观察能力为 0?
T3
待会写。
神奇地发现最后让每个数出入度相等/差 1 即可,跑欧拉回路。
对于差 1 的情况就加个源点连向奇数点即可。由于一条边加入的度数是 2,所以整个图度数是偶数,也就是有偶数个奇点,所以源点最后度数也是偶的。
分治是因为 m 是二次幂,并且尝试拓展
如果我们随便把一列钦定到另外一列(如果跨越 mid 交换),这成立吗?
证明考虑:如果这一列某些要交换的数都去到了另外一列,这是显然没有必要的,因为我们可以在分治这一边的时候再交换原来的一列和另外的一列,分治另一边同理。
所以每次分治都做
拓展
这种类型的题目还有:CF429E 和 CF547D。没做过所以考场上不会情有可原
后面那个题一眼
前面那个题显然你不能每个线段向点连边,不然这些边的定向可能不一样就矛盾了。
转化成差分,连边
T4
直接记忆化搜索就可以获得 64pts,我们是优秀的暴力。
T4 做题过程:挨着题有 24 暴力 -> 36 -> wc 20000 刚好放平方过!(48) -> A 可过(56) -> 测了 B 的大洋例发现过了!(64)。
结论:
若
和 的并是 ,且交不为空,那么 。
先证明:
因为
k 次方呢?对于后面部分,由于一次过后他们相交,故第二次的时候他们本来是相交的,运用上面的结论一直做还是相交的。
对于前面部分,我们可以设最后是
根据类似的证明可以得出结合律,于是
先用倍增求出:
考虑 st 表合并的时候两个区间是一定相交的,就做完了。这题真神,喷不了。
不管是打比赛还是做练习,每一道题都要有:
1.思维过程(细心读题、大致思考、认真草稿)
2.书写过程(仔细打代码,做到打了就不会出现低级错误)
3.检查过程(算法正确性的检查、时空复杂度的检查、重要的题目在有时间的情况下一定对拍)
4.总结过程(遇到很妙的题、总是犯错误的知识点,做到总结及举一反三)
如果平时训练也能这样严格执行,时间久了,你一定会受益匪浅!加油!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!