![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
倍增
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[2017雅礼集训6-28]T2 jump
显然,每个点跳k步能到达的点一定是一个区间。考虑倍增,l[i][k]表示点i跳2^k步能到的左端点,r[i][k]同理。转移: l[i][k]=min{l[j][k-1]} l[i][k-1]<=j<=r[i][k-1] r[i][k]=max{r[j][k-1]} l[i][k-1]<=j<=r[i][k-1] 线段树搞搞。 二分答案求出l[ ],r[ ]后,就是问存不存在l[i]#inc原创 2017-06-30 21:40:47 · 321 阅读 · 0 评论 -
[BZOJ4569][SCOI2016]萌萌哒 并查集+倍增
一开始想偏了,一直在想线段树上搞个并查集。其实线段树的分段方式不灵活,需要应用ST表式(倍增式)的分段方式。 考虑维护log\log个并查集。因为每个区间都可以被分成两个长度为2k2^k的区间,于是在第kk个并查集中合并。合并第kk个并查集中的xx和yy,意义是[x,x+2k−1][x,x+2^k-1]和[y,y+2k−1][y,y+2^k-1]两个等长的区间相对应的元素两两合并,就像打了标记。原创 2018-01-11 22:04:36 · 242 阅读 · 0 评论