2026年NOICA联盟-NOIP模拟赛(四)
http://47.113.203.55/contest/6ab0c3125f612376a929d1fd
卡牌游戏 card
假设牌堆里有一张 \(1\),那么放入 \(2,3\) 各一张,后放入的会保留下来。
根据贪心,我们保留后放入的牌。
然后直接写一个模拟处理。
排列计数 perm
显然按照深度不降,然后发现同层之间的限制一定会取到距离最大值,因为深度相同,而 LCA 必然会被取到。
所以考虑 \(dep-1\) 中有哪些不能和 \(dep\) 挨在一起放。
对于非叶子,一定有一个 \(dep\) 是他的儿子,所以不会超过限制。
对于叶子,若在 \(dep\) 的 LCA 子树内,也不会超过限制。
而对于在 LCA 子树外的,他到所有 \(dep\) 的节点距离都一样,所以可以扫描线一下处理限制。
排序 sort
对于 \(A+B\le n\) 好做。
操作一定是 \(ABABAB...\) 或者 \(BABABA...\)。
转 01,模拟发现大部分时间都在往右传 \(A+B-n\) 个 1,这部分可以快速跳过。
然后剩余的排序次数是 \(O(1)\) 次的。
然后发现其实关键的 01 阈值只关注第 \(A\) 大的数和第 \(n-B\) 大的数。
那么跑二维数点即可处理答案。
图游走 walk
蓝边:
- \(u<v\) 且颜色不同。
- \(u>v\) 且颜色相同。
红边就是蓝边的补图,即反向边。
\(1,2\) 可以互相一步到达。\(1,2\) 都能出发到达 \(v\ge 3\) 的 W 节点。
将答案路径按照 \(1,2\) 分割开。
考虑 \(2\to 1\) 的路径可以翻转得到一条合法的蓝色路径,所以相当于问有向路径覆盖数量的带权和。
按照路径左右端点的颜色,可以得到四类路径:BB,WW,BW,WB,设他们分别有 \(a,b,c,d\) 个。
考虑路径覆盖还原可能的答案路径:
BB不能从 1,2 出发得到,贡献为 0。WW可以翻转,贡献为 2。WB,BW都有唯一的方案。
故一个路径覆盖的方案数是 \(2^{b}(b+c+d)![a=0]\)。
考虑插入 dp,从小到大依次考虑每个节点是否在最终的路径覆盖里。
记 \(f_{i,a,b,c,d}\) 表示上述的方案数,经过分讨可以进行转移。
浙公网安备 33010602011771号