多校A层冲刺NOIP2024模拟赛25
多校A层冲刺NOIP2024模拟赛25
前言
唐了,T2重构了两遍,但把一开始的代码调整一下便可通过,唐到用一个有4种取值的vis分讨。😡
图
签,bitset。
题解是用long long将 m 状压,感觉不如 bitset 🤓
序列
先考虑确定了有哪些操作后怎么做,显然最优的顺序是先赋值,再进行加法,最后乘法。
现在考虑如何将所有操作统一起来一起维护。
对于赋值,肯定只会赋值一次,所以直接处理出来即可,
对于乘法,直接乘即可
对于加法,肯定要先加大的,所以每个
所以每次便是乘上一个数
用优先队列维护即可。
树
先考虑一棵树。
很容易求出在
考虑接入一颗树,由于是同一颗树,所以可以在原树上直接考虑 (后话)。
当我们接入一个根为必败的树时,接入的点一定会变为必胜点。
接入必胜点时,对任何点都没有影响(因为不会有人想要走这里)。
所以设
但是我们接入一个树,这棵树的根不一定是原来的根,所以需要对每一个点都求出以这个点为根的
所以需要换根(后面再提,先说思路)。
现在将问题扩展到D颗树,由于每次都是相似的转移,所以可以从后向前求答案。
我们设
设
- 连入一个必输的根
。 - 连入一个必胜的根,都不变,连在任意处都可以
。
发现可以直接使用矩阵快速幂维护。
转移矩阵:
好了,最后就是如何换根了。
对于一个点,枚举儿子进行转移。
如果这个点没有任何必输点或当前的儿子就是它唯一的必输点,则它无法进行必输转移,因为还有其他的必输点。
否则,儿子的输赢根本不用管。
换根的话直接将父亲放在它儿子,像儿子一样处理即可(有空再补吧,希望我还能记得这个逆天东西)。
然后在回溯回去就行了。
字符串
严格小于 T3,线段树维护相邻字符的数量,答案就是逆序对个数 +1。
后记
感觉整场都在打T2,有点失败,希望最后几场模拟赛能再提升提升实力。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)