NOIP2022 题解

去年今时,我得了 100 + 0 + 0 + 8 分,太抽象了 QwQ

所以为什么今天才写这个东西?因为今天才做完了 T2……

[NOIP2022] 种花

简单前缀和优化 DP,不谈。

[NOIP2022] 喵了个喵

非常高级的构造题。

看到 k=2n1/2,我们可能会想到每一个栈内放两个即可,留一个辅助栈,即可完美过掉 k=2n2 的东西。

考虑我们如何处理多出来的那一个。

我们向后考虑,如果一个元素在栈顶有,那么可以直接消掉,但是不在栈顶存在,那么一定在栈底,所以我们必须保留一个空栈使得可以将栈底的他消掉。

设这个只在栈底的元素为 x,其头上一定有一个元素 y,一个简单的想法是将 ai 压在 y 头上,自然留下了一个空栈。

但是考虑序列为 ai,y,x 的情况,此时由于原本的 yai 压着,所以只能将新的 y 放入空栈中,但是如此 x 就没法消掉了,这十分恼人。

但是观察到这种情况出现当且仅当 yaix 内的出现次数为奇数,所以我们换一个思路,将 ai 放在空栈中,这样到 x 的时候,y 也被消完了,此时 x 所在的栈就变成了空栈。

回来考虑偶数次的情况,我们可以在这里面将 y 给消完,所以我们将 ai 压在 y 上,每次将 y 放在 ai 上,那么自然到 x 的时候,x 的上面就只有 yai,并且原本的空栈还是空着的,所以可以将 x 消掉,此时 y,ai 形成一个新的两个元素的栈。

注意这里新的 y 只能压在 ai 头上,否则可能影响到原本处于栈顶,但是被 y 压着无法消掉的情况。

按照此规则模拟即可。

[NOIP2022] 建造军营

考虑到每次只会删一条边,那么意味着军营间原图的割边一定需要被看守。

于是边双缩点,一个联通分量内的边可守可不守,变成在树上进行 DP。

计数很烦人,考虑是否能够转化为期望进行计数。

于是我们求在边 2m 随机中合法方案数的期望。

考虑 fi 表示 i 所在的强连通分量被选中(但是可能没有军营),初始显然是 2sizi

考虑加入一个子树,由于其中的连边有 12 的概率断开/连上,所以 fi=12fi+12fify

最后我们统计所有的答案,为了不重复,我们只枚举深度最浅的那个点。

由于必须与父亲的边断开,以及非空,所以需要减 1,并且有一个 12 的系数:12(fi1)

但是考虑根没有父亲,所以没有 12 的系数,特判一下即可。

最后乘上 2m 即可。

但愿不会再遇到套路,太抽象了。

[NOIP2022] 比赛

被玩烂的题 QwQ,见 # 算法学习笔记(33): 矩阵乘法与线段树标记

posted @   jeefy  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示