NOIP 模拟赛:2024-11-11

T1:

法一:O(n2) 的 DP。dp[i][j][0/1] 表示在 i 的子树内染色,i 是红/黑,使得每个要求的结点的黑点个数都等于 j

法二:O(n) 的神秘做法。取出最浅的被要求结点,把深度 它的都染成黑色,其余点都染成红色。

T2:

对于一个元素属于 [0,2m) ,且互不相同的长度为 n 的整数序列 a1,a2,,an,定义它的特征序列为序列 p0,p1,,p2m1,其中 pi表示一个1n范围的下标,使得 api 与 $i p_i = \arg \max_{(1\le j\le n)}\ a_j ⊕ i$,其中 为异或操作。

小 D 写出了一个满足要求的序列 a,并求出了它的特征序列 p。不幸的是,小 D 把原序列弄丢了,而只剩下了特征序列 p。小 D 想要知道有多少满足要求的原序列 a 可以得到这个特征序列 p。因为答案可能很大,输出答案对 109+7 取模的结果即可。


容易想到从高到低,每次确定一个位。

对于 p[lr],如果左半边和右半边泾渭分明,则左半边涉及的 a 最高位都是 1,右半边涉及的 a 最高位都是 0,只有一种可能。然后各自递归进左右。

如果左半边的 a 和右半边完全相同,那这些 a 最高位取 0/1 都行,两种可能,然后递归进一边。

其他情况,无解。

但是有一种特殊情况无解是未被考虑的:如果有一个 a 没有在任何 p 出现,无解。

T3:

这个神秘的操作就是循环左移。不过这个操作是什么没什么关系。

发现如果小 Y 决定在第 i 次操作之后左移,其对 x 的影响和 x 是什么无关,只和 a1am 有关:可以求出一个数 ti,表示如果小 Y 决定在第 i 次之后左移,x 经过所有操作之后得到的答案是 xti

把所有 ti 插入一个 01-Trie 里,然后搜索。对于一个叶子,它的价值是从根到它的路径上只有一个儿子的结点对应的 2 的幂的和。例如如果 "从根到它的路径上只有一个儿子的结点" 有对应 24,21,20 的结点,那它的权值就是 16+2+1=19

小 D 可能的最大价值就是叶子结点最大权值,方案数就是有多少个叶子取到这个最大值。

T4:

原题

做法和第一篇题解相同。

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