标签:前缀 按秩合并 撤销 定时 维护 display log 一起 开始
略
略
有解当且仅当存在 \(a_i + a_j \geq L\)
考虑一个暴力:整体二分,每次遍历整张图
由于每次访问的点的数量跟二分的mid有关,直接t飞
可以发现上面这个算法并没有很好地重复利用之前的信息
考虑把信息用并查集维护,然后把 \(1 \sim m\) 每次的操作存下来,用按秩合并实现 \(O(1)\) 撤销,每次判定时直接暴力移动,由于每次移动不会超过当前区间长度的两倍,复杂度可以达到 \(O((m + q)\log m)\)
把所有数从小到大排后放在网格上,就变成了有一条折线围成的区域,每次只能往上或往左走,折线向右拐的拐角处为必败,问右下角的状态
(没有图,感性理解一下)
讨论一波,可以发现每个格子的右下角的状态跟这个格子是一样的,所以我们只用找到对角线上第一个格子,按照奇偶性算一下就好了
怎么感觉后三题的难度是按降序排的
显然,序列的第一个球一定是白色的,我们可以把它和第一个有色球的颜色“捆绑”在一起,把这些球删掉后仍然是一个合法的序列
然后就可以开始dp
令 \(f_{i, j}\) 表示有 \(i\) 种颜色,前 \(j\) 个球是白球的合法序列数, \(m\) 表示每种颜色有多少个球,可得
\[f_{i, j} = \sum_{k \geq j - 1} f_{i - 1, k} \cdot g(m - 2, m(i - 1) - (j - 1) + 1)\]
其中 \(g(i, j)\) 是把 \(i\) 个无差别球放到 \(j\) 个有差别的盒子里的方案数,即 \(\binom {i + j - 1} {j - 1}\)
前缀和优化一下即可
标签:前缀 按秩合并 撤销 定时 维护 display log 一起 开始
原文地址:https://www.cnblogs.com/0xfffe/p/12462750.html