摘要: 将树通过树链剖分转化成线性序列,用线段树维护最值,和值即可。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 3e4 + 10; 4 int n, m, head[N], to[N << 1], nxt[N << 1 阅读全文
posted @ 2022-10-07 21:12 YHXo 阅读(31) 评论(0) 推荐(0)
摘要: P3402 通过主席树维护不同版本的并查集,注意要采用按秩合并的方式,路径压缩可能会爆。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 3e5 + 10; 4 int n, m, rt[N * 30]; 5 str 阅读全文
posted @ 2022-10-07 20:13 YHXo 阅读(44) 评论(0) 推荐(0)
摘要: 还是用主席树来做(因为提到不同的版本),这时候的主席树不是以权值为下标的,就是普通的线段树,维护范围1~n,i存的是a[ ]中的数。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1e6 + 10, M = N * 阅读全文
posted @ 2022-10-07 18:53 YHXo 阅读(31) 评论(0) 推荐(0)