From c67f8d711514cdf9323b80f0d4cbc3e90bd10cde Mon Sep 17 00:00:00 2001 From: Luke Videckis Date: Mon, 23 Jun 2025 18:19:56 -0600 Subject: [PATCH 1/5] add better example usages --- library/graphs/bridges_cuts/cuts_callback.hpp | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/library/graphs/bridges_cuts/cuts_callback.hpp b/library/graphs/bridges_cuts/cuts_callback.hpp index 32648536..58134214 100644 --- a/library/graphs/bridges_cuts/cuts_callback.hpp +++ b/library/graphs/bridges_cuts/cuts_callback.hpp @@ -3,10 +3,35 @@ //! @code //! { //! vector> adj(n); -//! cuts_callback(adj, [&](const vi& nodes) {}); +//! vector edges(m); +//! UF uf(n); +//! cuts_callback(adj, [&](const vi& nodes) { +//! if(sz(nodes) > 2) +//! for (int v : nodes) uf.join(v, nodes[0]); +//! }); +//! vector> bridge_tree(n); +//! for (auto [u, v] : edges) { +//! if(!uf.sameSet(u,v)) { +//! u = uf.find(u), v = uf.find(v); +//! bridge_tree[u] += v; +//! bridge_tree[v] += u; +//! } +//! } //! } +//! //! vector> adj(n); +//! vector>> adj_edge_ids(n); +//! vector seen(m); //! cuts_callback(adj, [&](const vi& nodes) { +//! rep (i, 0, sz(nodes) - 1) { +//! int v = nodes[i]; +//! for (auto [u, e_id] : adj_edge_ids[v]){ +//! if(!seen[e_id]) { +//! seen[e_id] = 1; +//! // this edge is in the current BCC +//! } +//! } +//! } //! }); //! @endcode //! callback not called on components with a single node From 3f281646b5b217a540e497bffdd962f9e5de47b4 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 24 Jun 2025 00:21:36 +0000 Subject: [PATCH 2/5] [auto-verifier] verify commit c67f8d711514cdf9323b80f0d4cbc3e90bd10cde --- .verify-helper/timestamps.remote.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.verify-helper/timestamps.remote.json b/.verify-helper/timestamps.remote.json index 785c8910..7c21e271 100644 --- a/.verify-helper/timestamps.remote.json +++ b/.verify-helper/timestamps.remote.json @@ -52,7 +52,7 @@ "tests/library_checker_aizu_tests/flow/min_cost_max_flow.test.cpp": "2024-12-05 10:41:42 -0600", "tests/library_checker_aizu_tests/graphs/biconnected_components.test.cpp": "2025-02-10 23:30:47 -0700", "tests/library_checker_aizu_tests/graphs/connected_components_of_complement_graph.test.cpp": "2024-12-14 19:50:29 -0600", -"tests/library_checker_aizu_tests/graphs/cuts_callback.test.cpp": "2025-06-23 04:33:28 -0600", +"tests/library_checker_aizu_tests/graphs/cuts_callback.test.cpp": "2025-06-23 18:19:56 -0600", "tests/library_checker_aizu_tests/graphs/dijkstra_aizu.test.cpp": "2024-12-14 19:50:29 -0600", "tests/library_checker_aizu_tests/graphs/dijkstra_lib_checker.test.cpp": "2024-12-14 19:50:29 -0600", "tests/library_checker_aizu_tests/graphs/directed_cycle.test.cpp": "2025-02-10 23:30:47 -0700", From 845477282e6bf98e772278f534386939ce32351a Mon Sep 17 00:00:00 2001 From: Luke Videckis Date: Mon, 23 Jun 2025 18:22:23 -0600 Subject: [PATCH 3/5] format and golf --- library/graphs/bridges_cuts/cuts_callback.hpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/library/graphs/bridges_cuts/cuts_callback.hpp b/library/graphs/bridges_cuts/cuts_callback.hpp index 58134214..1fa88b6f 100644 --- a/library/graphs/bridges_cuts/cuts_callback.hpp +++ b/library/graphs/bridges_cuts/cuts_callback.hpp @@ -6,12 +6,12 @@ //! vector edges(m); //! UF uf(n); //! cuts_callback(adj, [&](const vi& nodes) { -//! if(sz(nodes) > 2) +//! if (sz(nodes) > 2) //! for (int v : nodes) uf.join(v, nodes[0]); //! }); //! vector> bridge_tree(n); //! for (auto [u, v] : edges) { -//! if(!uf.sameSet(u,v)) { +//! if (!uf.sameSet(u,v)) { //! u = uf.find(u), v = uf.find(v); //! bridge_tree[u] += v; //! bridge_tree[v] += u; @@ -23,15 +23,12 @@ //! vector>> adj_edge_ids(n); //! vector seen(m); //! cuts_callback(adj, [&](const vi& nodes) { -//! rep (i, 0, sz(nodes) - 1) { -//! int v = nodes[i]; -//! for (auto [u, e_id] : adj_edge_ids[v]){ -//! if(!seen[e_id]) { +//! rep (i, 0, sz(nodes) - 1) +//! for (auto [u, e_id] : adj_edge_ids[nodes[i]]) +//! if (!seen[e_id]) { //! seen[e_id] = 1; //! // this edge is in the current BCC //! } -//! } -//! } //! }); //! @endcode //! callback not called on components with a single node From c9f7289b783dd3a4a219147915c0f97fb374e15a Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 24 Jun 2025 00:23:52 +0000 Subject: [PATCH 4/5] [auto-verifier] verify commit 6580c6f7761470472d2a71e03cfdbe9bcb2a7f34 --- .verify-helper/timestamps.remote.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.verify-helper/timestamps.remote.json b/.verify-helper/timestamps.remote.json index 7c21e271..1108429c 100644 --- a/.verify-helper/timestamps.remote.json +++ b/.verify-helper/timestamps.remote.json @@ -52,7 +52,7 @@ "tests/library_checker_aizu_tests/flow/min_cost_max_flow.test.cpp": "2024-12-05 10:41:42 -0600", "tests/library_checker_aizu_tests/graphs/biconnected_components.test.cpp": "2025-02-10 23:30:47 -0700", "tests/library_checker_aizu_tests/graphs/connected_components_of_complement_graph.test.cpp": "2024-12-14 19:50:29 -0600", -"tests/library_checker_aizu_tests/graphs/cuts_callback.test.cpp": "2025-06-23 18:19:56 -0600", +"tests/library_checker_aizu_tests/graphs/cuts_callback.test.cpp": "2025-06-23 18:22:23 -0600", "tests/library_checker_aizu_tests/graphs/dijkstra_aizu.test.cpp": "2024-12-14 19:50:29 -0600", "tests/library_checker_aizu_tests/graphs/dijkstra_lib_checker.test.cpp": "2024-12-14 19:50:29 -0600", "tests/library_checker_aizu_tests/graphs/directed_cycle.test.cpp": "2025-02-10 23:30:47 -0700", From 3ff9e81e89c50fbab8113bea5acb2bbaac1aad7c Mon Sep 17 00:00:00 2001 From: Luke Videckis Date: Mon, 23 Jun 2025 18:26:52 -0600 Subject: [PATCH 5/5] more golf and format --- library/graphs/bridges_cuts/cuts_callback.hpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/library/graphs/bridges_cuts/cuts_callback.hpp b/library/graphs/bridges_cuts/cuts_callback.hpp index 1fa88b6f..e103c2a4 100644 --- a/library/graphs/bridges_cuts/cuts_callback.hpp +++ b/library/graphs/bridges_cuts/cuts_callback.hpp @@ -10,13 +10,12 @@ //! for (int v : nodes) uf.join(v, nodes[0]); //! }); //! vector> bridge_tree(n); -//! for (auto [u, v] : edges) { -//! if (!uf.sameSet(u,v)) { +//! for (auto [u, v] : edges) +//! if (!uf.sameSet(u, v)) { //! u = uf.find(u), v = uf.find(v); //! bridge_tree[u] += v; //! bridge_tree[v] += u; //! } -//! } //! } //! //! vector> adj(n);