AGC002
A
略
B
略
C
有解当且仅当存在 \(a_i + a_j \geq L\)
D \(\triangle\)
考虑一个暴力:整体二分,每次遍历整张图
由于每次访问的点的数量跟二分的mid有关,直接t飞
可以发现上面这个算法并没有很好地重复利用之前的信息
考虑把信息用并查集维护,然后把 \(1 \sim m\) 每次的操作存下来,用按秩合并实现 \(O(1)\) 撤销,每次判定时直接暴力移动,由于每次移动不会超过当前区间长度的两倍,复杂度可以达到 \(O((m + q)\log m)\)
E
把所有数从小到大排后放在网格上,就变成了有一条折线围成的区域,每次只能往上或往左走,折线向右拐的拐角处为必败,问右下角的状态
(没有图,感性理解一下)
讨论一波,可以发现每个格子的右下角的状态跟这个格子是一样的,所以我们只用找到对角线上第一个格子,按照奇偶性算一下就好了
F
怎么感觉后三题的难度是按降序排的
显然,序列的第一个球一定是白色的,我们可以把它和第一个有色球的颜色“捆绑”在一起,把这些球删掉后仍然是一个合法的序列
然后就可以开始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}\)
前缀和优化一下即可