Skip to content

Commit 3b6e828

Browse files
committed
golf bridges now
1 parent ce4aff3 commit 3b6e828

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

library/graphs/bridges_cuts/bridges.hpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
//! adj[u].emplace_back(v, i);
1010
//! adj[v].emplace_back(u, i);
1111
//! }
12-
//! auto [num_ccs, is_br, br_id] = bridges(adj, m);
1312
//! vector<basic_string<array<int,2>>> adj1(n);
14-
//! auto [num_ccs1, is_bridge1, br_id1] = bridges(adj1,
1513
//! m);
1614
//! @endcode
1715
//! is_br[edge id] = 1 iff bridge edge
@@ -26,11 +24,8 @@ tuple<int, vi, vi> bridges(const G& adj, int m) {
2624
int low = tin[v] = ++timer, siz = sz(st);
2725
st.push_back(v);
2826
for (auto [u, e_id] : adj[v])
29-
if (e_id != p_id) {
30-
// TODO golf this
31-
if (!tin[u]) low = min(low, self(self, u, e_id));
32-
low = min(low, tin[u]);
33-
}
27+
if (e_id != p_id && br_id[u] < 0)
28+
low = min(low, tin[u] ?: self(self, u, e_id));
3429
if (tin[v] == low) {
3530
if (p_id != -1) is_br[p_id] = 1;
3631
rep(i, siz, sz(st)) br_id[st[i]] = num_ccs;

0 commit comments

Comments
 (0)