摘要:
题解: 的确是动态树好题 首先由于每个点只有一个出边 这个图构成了基环内向树 我们观察那个同余方程组 一旦形成环的话我们就能知道环上点以及能连向环上点的值是多少了 所以我们只需要用一种结构来维护两个不是直接相连点的状态 由于有删边连边操作,比较容易想到lct 我们按照套路将它拆掉一条边形成一颗树 因 阅读全文
摘要:
题解: 和hnoi2018day2t1基本一样 我想了半小时想出了一个很麻烦的做法 写了之后发现假掉了 刚开始想的是 先预处理出每个门要打开至少要在左边的哪个点$L[]$,右边的哪个点$R[]$ 对每个位置要去二分出右端点(左端点同理) 然后合法的判定方法是 在$MIN(L[k])~i-1$这一段 阅读全文
摘要:
题意: 区间+k,查询=c的个数(c一开始给定) 1.当k为正数 2.不保证k为正数 题解: 两个的复杂度是不一样的 1的话显然每个数只会成为1次c 我们记录区间比c小的最大值就可以了 每次进入一个区间当且仅当这个区间有+k>c的数 复杂度$nlogn$ 2的话我们考虑分块 里面开个数组维护一下从小 阅读全文
摘要:
题解: 很套路的题目 我们按照询问中的不算的个数是否大于$block$分类 如果大于,就$O(n)dp$一下 如果小于,就预处理出到每个点前$block$小的点 $block取\sqrt{n}$的话复杂度就是$n\sqrt{n}$的 阅读全文