Skip to content

Commit 0a7faa9

Browse files
committed
more nits
1 parent 9de6cd9 commit 0a7faa9

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

library/dsu/line_tree.hpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
//! ranges::sort(w_eds);
55
//! line_tree lt(n);
66
//! for (auto [w, u, v] : w_eds) lt.join(u, v);
7-
//! for (int v = lt.find(0); v != -1;) {
7+
//! for (int v = lt.f(0); v != -1;) {
88
//! auto [next, e_id] = lt.edge[v];
99
//! int w = w_eds[e_id][0];
1010
//! //
1111
//! v = next;
1212
//! }
1313
//! @endcode
14-
//! lt.find(v) = head of linked list
14+
//! lt.f(v) = head of linked list
1515
//! of component containing v
1616
//! @time O(n + m * \alpha(n))
1717
//! @space O(n + m)
@@ -22,16 +22,14 @@ struct line_tree {
2222
line_tree(int n): p(n, -1), last(n), edge(n, {-1, -1}) {
2323
iota(all(last), 0);
2424
}
25-
int size(int v) { return -p[find(v)]; }
26-
int find(int v) {
27-
return p[v] < 0 ? v : p[v] = find(p[v]);
28-
}
25+
int size(int v) { return -p[f(v)]; }
26+
int f(int v) { return p[v] < 0 ? v : p[v] = f(p[v]); }
2927
bool join(int u, int v) {
30-
u = find(u), v = find(v), id++;
28+
u = f(u), v = f(v), id++;
3129
if (u == v) return 0;
3230
if (p[u] < p[v]) swap(u, v);
3331
p[v] += p[u], p[u] = v;
34-
edge[exchange(last[v], last[u])] = {u, id - 1};
32+
edge[last[v]] = {u, id - 1}, last[v] = last[u];
3533
return 1;
3634
}
3735
};

tests/library_checker_aizu_tests/dsu/line_tree_aizu.test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ int main() {
2828
int mst_sum = 0;
2929
vector<int> edge_weights;
3030
vector<int> to_time(n);
31-
for (int v = lt.find(0), timer = 1;
31+
for (int v = lt.f(0), timer = 1;
3232
lt.edge[v] != pii{-1, -1};
3333
v = lt.edge[v].first, timer++) {
3434
edge_weights.push_back(w_eds[lt.edge[v].second][0]);

tests/library_checker_aizu_tests/dsu/line_tree_lib_checker.test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ int main() {
2222
assert(lt.size(0) == n);
2323
int64_t cost = 0;
2424
vector<int> ids;
25-
for (int v = lt.find(0); lt.edge[v].first != -1;
25+
for (int v = lt.f(0); lt.edge[v].first != -1;
2626
v = lt.edge[v].first) {
2727
ids.push_back(w_eds[lt.edge[v].second][0]);
2828
cost += weights[w_eds[lt.edge[v].second][0]];

0 commit comments

Comments
 (0)