摘要:
传送门 转换题意后就是问你生成树的方案数 就是裸的矩阵树定理 不会证明,只懂结论: 对于一个无向图 G 定义G的度数矩阵 D[G] 是一个 n*n 的矩阵,并且满足:当 i ≠ j 时,d[i][j] = 0,当 i = j 时,d[i][j]等于 vi 的度数 定义G的邻接矩阵 A[G] 是一个 阅读全文
摘要:
传送门 Splay模板题 考虑如何把一颗树翻转 把它的左右儿子翻转,左右儿子的左右儿子翻转...直到每个节点都被翻转 一颗树这样转后可以发现树的中序遍历也刚好左右翻转了 所以可以用Splay维护,维护标记也不难,只要每次向下之前都先传一下标记就可以了 注意此时Splay节点的大小关系是他们在序列的位 阅读全文
摘要:
传送门 splay模板 优质讲解 我只是发一个模板... 我太弱了讲不清 注意操作时可能会访问到最小值的前驱或最大值的后继 所以要多加入两个虚节点INF和 -INF防止越界 #include<cstdio> #include<cstring> #include<cmath> #include<alg 阅读全文
摘要:
传送门 树剖+动态开点线段树 对每种宗教开一个线段树,用来维护区间和,区间最大值 普通的线段树空间不够,所以要动态开点 因为宗教会改变,所以要有删除操作和插入操作 比如城市1从信仰a变成信仰b,那就把a的线段树上城市1删掉,在b线段树上插入城市1 询问就只要询问与旅行者同宗教的值就好了 怎么实现也不 阅读全文
摘要:
传送门 先考虑在一段序列上进行操作如何维护 线段树 记录每个区间的的颜色段数量 但是区间合并时两边可能颜色相同 所以再记录一下每个区间最左和最右的颜色 合并时如果相邻两边颜色相同,那么颜色段数量就要减一 然后考虑在树上操作 直接上树剖,一样用线段树维护就好了 询问时记录一下当前左右两边最上面的颜色 阅读全文