码迷,mamicode.com
首页 > 其他好文 > 详细

AGC002

时间:2020-03-12 09:54:36      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:前缀   按秩合并   撤销   定时   维护   display   log   一起   开始   

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}\)

前缀和优化一下即可

AGC002

标签:前缀   按秩合并   撤销   定时   维护   display   log   一起   开始   

原文地址:https://www.cnblogs.com/0xfffe/p/12462750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!