摘要: 前缀和 + rmq include const int N = 5e5 + 10; int Pow[30], Log[N]; int n, m; int a[N], sum[N]; int f[N][30]; int main() { std:: cin n m; for(int i = 1; i 阅读全文
posted @ 2018-09-19 10:44 xayata 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 抽离题意 求删除一条树边和一条非树边后将图分成不连通的两部分的方案数 对于一棵树,再加入一条边就会产生环。若只有一个环,说明只加入了一条非树边 (x, y),记 lca 为 l, 那么 对于任意一条 (x, l) and (y, l) 上的树边,都会产生 1 的贡献,也就是说若一条树边可以产生 1 阅读全文
posted @ 2018-09-19 09:07 xayata 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 最小瓶颈路 加强版 重构树 最小生成树在合并 (x, y) 时,新建节点 z,link(x, z), link(y, z), 新建节点的权值为 w_{x,y}, 这样的 话任意两点的 answer 为新树上两点 lca 的权值,由于询问次数非常多,显然不可以 logn 求 lca。这里利用 RMQ 阅读全文
posted @ 2018-09-19 09:05 xayata 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 最小瓶颈路 做最小生成树是进行特判即可 时间复杂度 n k include const int N = 1010, M = 1e5 + 10; struct Node { int u, v, w; bool operator n m k; for(int i = 1; i E[i].u E[i].v 阅读全文
posted @ 2018-09-19 09:04 xayata 阅读(189) 评论(0) 推荐(0) 编辑