摘要:
这题可以用分块暴力做,这里给出正解LCT的代码。 对于每一个弹射器i+k相当于i的父亲,大于n的全部归到n+1上。 这样对于修改操作就像于换了个父亲,我们要记录下上一次的父亲因为在splay中父亲可能会改变。 对于查询操作就相当于把n+1mroot到根,因为你添加时会更新,不能确保n+1的位置。 而 阅读全文
摘要:
NOIP之前写过这题,先用的分块。 又采用了树状数组,离线按右端点排序,只关心最后一个出现的位置,如果有更新的则将原来的-1将新的位置+1 现在我又学了主席树,我们只要对于last(上一次的位置)建主席树,然后查询0~l-1这个区间出现的个数即可。 阅读全文
摘要:
矩阵优化DP。 然而本题用到了骚操作,就是没有办法沿原路走回去,所以我们不能按临接矩阵dp,需要按照边建图 两边联通当且仅当a.from==b.to所以转移dp[i][j]=dp[i][k]*dp[k][j] 多少次就是多少次幂,然后加上与终点联通边的就是答案了。 By:大奕哥 阅读全文
摘要:
Link-Cut Tree 把每个重链看成是一个splay mroot:将x整到splay根上,将这个splay上下左右翻转 这个根的左儿子是他上面的重链,右儿子是他下面的重链 access:将根(最最上面)到x的边看成一条重链 link:连接两点都到根上,再更新 cut:切除两点关系,先将x转到根 阅读全文
摘要:
题目大意是这样的,给出n个点和m条边,每个边有一个流量的上下界,问是否存在一个循环的流量。这就是典型的无汇源点的上下界网络流,也就是循环流。做法是这样的,首先每条边我们都添加最少的流量,由于要满足流量守恒的条件,即每个点的流出量等于流入量,那么我们尝试进行修改,添加新的流量。我们记录一下每个点流出量 阅读全文