diff options
Diffstat (limited to '2025/08')
| -rw-r--r-- | 2025/08/a.py | 5 | ||||
| -rw-r--r-- | 2025/08/b.py | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/2025/08/a.py b/2025/08/a.py index b829dca..6201d09 100644 --- a/2025/08/a.py +++ b/2025/08/a.py | |||
| @@ -7,7 +7,10 @@ class SetJoin: | |||
| 7 | self._parent = [i for i in range(n)] | 7 | self._parent = [i for i in range(n)] |
| 8 | 8 | ||
| 9 | def rep(self, i): | 9 | def rep(self, i): |
| 10 | return i if self._parent[i] == i else self.rep(self._parent[i]) | 10 | if self._parent[i] != i: |
| 11 | self._parent[i] = self.rep(self._parent[i]) | ||
| 12 | return self._parent[i] | ||
| 13 | |||
| 11 | 14 | ||
| 12 | def join(self, i, j): | 15 | def join(self, i, j): |
| 13 | self._parent[self.rep(i)] = self.rep(j) | 16 | self._parent[self.rep(i)] = self.rep(j) |
diff --git a/2025/08/b.py b/2025/08/b.py index 0fac672..eb171f9 100644 --- a/2025/08/b.py +++ b/2025/08/b.py | |||
| @@ -5,7 +5,9 @@ class SetJoin: | |||
| 5 | self._parent = [i for i in range(n)] | 5 | self._parent = [i for i in range(n)] |
| 6 | 6 | ||
| 7 | def rep(self, i): | 7 | def rep(self, i): |
| 8 | return i if self._parent[i] == i else self.rep(self._parent[i]) | 8 | if self._parent[i] != i: |
| 9 | self._parent[i] = self.rep(self._parent[i]) | ||
| 10 | return self._parent[i] | ||
| 9 | 11 | ||
| 10 | def join(self, i, j): | 12 | def join(self, i, j): |
| 11 | self._parent[self.rep(i)] = self.rep(j) | 13 | self._parent[self.rep(i)] = self.rep(j) |
