Skip to content

Commit 3f5acfa

Browse files
committed
modify code
1 parent cbe3da7 commit 3f5acfa

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/class165/Code01_PersistentUnionFind1.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@ public class Code01_PersistentUnionFind1 {
2424
public static int MAXT = 8000001;
2525
public static int n, m;
2626

27+
// 可持久化线段树
2728
public static int[] rootfa = new int[MAXM];
2829
public static int[] rootsiz = new int[MAXM];
2930
public static int[] ls = new int[MAXT];
3031
public static int[] rs = new int[MAXT];
3132
public static int[] val = new int[MAXT];
3233
public static int cnt = 0;
3334

35+
// 建立可持久化的father数组
3436
public static int buildfa(int l, int r) {
3537
int rt = ++cnt;
3638
if (l == r) {
@@ -43,6 +45,7 @@ public static int buildfa(int l, int r) {
4345
return rt;
4446
}
4547

48+
// 建立可持久化的siz数组
4649
public static int buildsiz(int l, int r) {
4750
int rt = ++cnt;
4851
if (l == r) {
@@ -55,6 +58,7 @@ public static int buildsiz(int l, int r) {
5558
return rt;
5659
}
5760

61+
// 来自讲解157,题目1,修改数组中一个位置的值,生成新版本的树
5862
public static int update(int jobi, int jobv, int l, int r, int i) {
5963
int rt = ++cnt;
6064
ls[rt] = ls[i];
@@ -72,6 +76,7 @@ public static int update(int jobi, int jobv, int l, int r, int i) {
7276
return rt;
7377
}
7478

79+
// 来自讲解157,题目1,查询数组中一个位置的值
7580
public static int query(int jobi, int l, int r, int i) {
7681
if (l == r) {
7782
return val[i];
@@ -84,6 +89,7 @@ public static int query(int jobi, int l, int r, int i) {
8489
}
8590
}
8691

92+
// 基于v版本,查询x的集合头节点,不做扁平化
8793
public static int find(int x, int v) {
8894
int fa = query(x, 1, n, rootfa[v]);
8995
while (x != fa) {
@@ -93,6 +99,7 @@ public static int find(int x, int v) {
9399
return x;
94100
}
95101

102+
// 基于v版本,合并x所在的集合和y所在的集合,生成新版本的树
96103
public static void union(int x, int y, int v) {
97104
int fx = find(x, v);
98105
int fy = find(y, v);

0 commit comments

Comments
 (0)