Skip to content

Commit ffc32fd

Browse files
authored
u - current node, v - child (#195)
1 parent 8fa218e commit ffc32fd

File tree

5 files changed

+36
-159
lines changed

5 files changed

+36
-159
lines changed

library/flow/dinic.hpp

Lines changed: 0 additions & 61 deletions
This file was deleted.

library/trees/centroid_decomp.hpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,25 @@ template<class F, class G> struct centroid {
1414
adj(adj), f(f), siz(sz(adj), -1) {
1515
dfs(0, -1);
1616
}
17-
void calc_sz(int v, int p) {
18-
siz[v] = 1;
19-
for (int u : adj[v])
20-
if (u != p) calc_sz(u, v), siz[v] += siz[u];
17+
void calc_sz(int u, int p) {
18+
siz[u] = 1;
19+
for (int v : adj[u])
20+
if (v != p) calc_sz(v, u), siz[u] += siz[v];
2121
}
22-
void dfs(int v, int p) {
23-
calc_sz(v, -1);
24-
for (int w = -1, sz_root = siz[v];;) {
25-
auto big_ch = ranges::find_if(adj[v], [&](int u) {
26-
return u != w && 2 * siz[u] > sz_root;
22+
void dfs(int u, int p) {
23+
calc_sz(u, -1);
24+
for (int w = -1, sz_root = siz[u];;) {
25+
auto big_ch = ranges::find_if(adj[u], [&](int v) {
26+
return v != w && 2 * siz[v] > sz_root;
2727
});
28-
if (big_ch == end(adj[v])) break;
29-
w = v, v = *big_ch;
28+
if (big_ch == end(adj[u])) break;
29+
w = u, u = *big_ch;
3030
}
31-
f(adj, v, p);
32-
for (int u : adj[v]) {
33-
iter_swap(ranges::find(adj[u], v), rbegin(adj[u]));
34-
adj[u].pop_back();
35-
dfs(u, v);
31+
f(adj, u, p);
32+
for (int v : adj[u]) {
33+
iter_swap(ranges::find(adj[v], u), rbegin(adj[v]));
34+
adj[v].pop_back();
35+
dfs(v, u);
3636
}
3737
}
3838
};

library/trees/edge_cd.hpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,31 +21,31 @@ template<class F, class G> struct edge_cd {
2121
adj(adj), f(f), siz(sz(adj)) {
2222
dfs(0, sz(adj) - 1);
2323
}
24-
int find_cent(int v, int p, int m) {
25-
siz[v] = 1;
26-
for (int u : adj[v])
27-
if (u != p) {
28-
int cent = find_cent(u, v, m);
24+
int find_cent(int u, int p, int m) {
25+
siz[u] = 1;
26+
for (int v : adj[u])
27+
if (v != p) {
28+
int cent = find_cent(v, u, m);
2929
if (cent != -1) return cent;
30-
siz[v] += siz[u];
30+
siz[u] += siz[v];
3131
}
32-
return 2 * siz[v] > m
33-
? p >= 0 && (siz[p] = m + 1 - siz[v]),
34-
v : -1;
32+
return 2 * siz[u] > m
33+
? p >= 0 && (siz[p] = m + 1 - siz[u]),
34+
u : -1;
3535
}
36-
void dfs(int v, int m) {
36+
void dfs(int u, int m) {
3737
if (m < 2) return;
38-
v = find_cent(v, -1, m);
38+
u = find_cent(u, -1, m);
3939
int sum = 0;
40-
auto it = partition(all(adj[v]), [&](int u) {
41-
ll x = sum + siz[u];
42-
return x * x < m * (m - x) ? sum += siz[u], 1 : 0;
40+
auto it = partition(all(adj[u]), [&](int v) {
41+
ll x = sum + siz[v];
42+
return x * x < m * (m - x) ? sum += siz[v], 1 : 0;
4343
});
44-
f(adj, v, it - begin(adj[v]));
45-
G oth(it, end(adj[v]));
46-
adj[v].erase(it, end(adj[v]));
47-
dfs(v, sum);
48-
swap(adj[v], oth);
49-
dfs(v, m - sum);
44+
f(adj, u, it - begin(adj[u]));
45+
G oth(it, end(adj[u]));
46+
adj[u].erase(it, end(adj[u]));
47+
dfs(u, sum);
48+
swap(adj[u], oth);
49+
dfs(u, m - sum);
5050
}
5151
};

tests/library_checker_aizu_tests/dinic_asserts.hpp

Lines changed: 0 additions & 42 deletions
This file was deleted.

tests/library_checker_aizu_tests/flow/dinic_aizu.test.cpp

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)