NOIP2022 题解
去年今时,我得了 100 + 0 + 0 + 8
分,太抽象了 QwQ
所以为什么今天才写这个东西?因为今天才做完了 T2……
[NOIP2022] 种花
简单前缀和优化 DP,不谈。
[NOIP2022] 喵了个喵
非常高级的构造题。
看到 ,我们可能会想到每一个栈内放两个即可,留一个辅助栈,即可完美过掉 的东西。
考虑我们如何处理多出来的那一个。
我们向后考虑,如果一个元素在栈顶有,那么可以直接消掉,但是不在栈顶存在,那么一定在栈底,所以我们必须保留一个空栈使得可以将栈底的他消掉。
设这个只在栈底的元素为 ,其头上一定有一个元素 ,一个简单的想法是将 压在 头上,自然留下了一个空栈。
但是考虑序列为 的情况,此时由于原本的 被 压着,所以只能将新的 放入空栈中,但是如此 就没法消掉了,这十分恼人。
但是观察到这种情况出现当且仅当 在 内的出现次数为奇数,所以我们换一个思路,将 放在空栈中,这样到 的时候, 也被消完了,此时 所在的栈就变成了空栈。
回来考虑偶数次的情况,我们可以在这里面将 给消完,所以我们将 压在 上,每次将 放在 上,那么自然到 的时候, 的上面就只有 和 ,并且原本的空栈还是空着的,所以可以将 消掉,此时 形成一个新的两个元素的栈。
注意这里新的 只能压在 头上,否则可能影响到原本处于栈顶,但是被 压着无法消掉的情况。
按照此规则模拟即可。
[NOIP2022] 建造军营
考虑到每次只会删一条边,那么意味着军营间原图的割边一定需要被看守。
于是边双缩点,一个联通分量内的边可守可不守,变成在树上进行 DP。
计数很烦人,考虑是否能够转化为期望进行计数。
于是我们求在边 随机中合法方案数的期望。
考虑 表示 所在的强连通分量被选中(但是可能没有军营),初始显然是 。
考虑加入一个子树,由于其中的连边有 的概率断开/连上,所以 。
最后我们统计所有的答案,为了不重复,我们只枚举深度最浅的那个点。
由于必须与父亲的边断开,以及非空,所以需要减 ,并且有一个 的系数:。
但是考虑根没有父亲,所以没有 的系数,特判一下即可。
最后乘上 即可。
但愿不会再遇到套路,太抽象了。
[NOIP2022] 比赛
被玩烂的题 QwQ,见 # 算法学习笔记(33): 矩阵乘法与线段树标记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!