Biconnected Components
Posted3 months agoActive3 months ago
emi-h.comTechstory
calmmixed
Debate
40/100
Graph TheoryAlgorithmsCompetitive Programming
Key topics
Graph Theory
Algorithms
Competitive Programming
The article discusses biconnected components in graph theory, sparking a discussion on its applications, implementation, and accuracy.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
12h
Peak period
11
12-18h
Avg / period
2.9
Comment distribution20 data points
Loading chart...
Based on 20 loaded comments
Key moments
- 01Story posted
Sep 21, 2025 at 7:06 PM EDT
3 months ago
Step 01 - 02First comment
Sep 22, 2025 at 6:39 AM EDT
12h after posting
Step 02 - 03Peak activity
11 comments in 12-18h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 24, 2025 at 8:07 AM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45327478Type: storyLast synced: 11/20/2025, 1:51:04 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
What is competitive programming?
- HN responses might contain more first-hand experience and thus be richer than what one could find via Google or an LLM.
- Some terms are contextual so Google might not give the right answer, and an LLM could give a more contextual answer but might still just be wrong.
Are those usually the reason, or are there other reasons as well?
Those types can't help themselves so patterns emerge and usernames become recognizable after a while. There are some people who I just don't bother engaging with any more. Of course, those experiences are my own and maybe not the same experience as others.
2) sense of community - people ask questions because it's in human nature to teach others and learn within our groups. Programming culture is even more about joy of teaching others, so I don't understand your complaint
The contests I used to go to, you got 11-13 problems and 5 hours to solve them with a team of 3. However, you only have one PC to share, so a lot of the time you are discussing, drawing stuff on paper and figuring out the solution in your head. There is also a printing service during the contest where you can literally get a paper version of your code :) so somebody else can code while you debug on paper.
See for instance https://www.acmicpc.net/category/detail/4319 for the kinds of problems they give (Korean website unfortunately but the problems are in English).
They show (3,1) as a valid pair, but node 3 is not labeled as being in set A. Either the graph is mislabeled or the example valid pair is wrong.
At some point I relabeled the vertices to match the DFS order, but I must have forgotten to update this example.
I noticed another small error. Step 15 of the Tarjan's algorithm diagram reads:
> Since low[6] > 4, the edge is a bridge.
I think it should read:
> Since low[6] > low[4], the edge is a bridge.
Here 4 is the entry time of that node. (For convenience I made sure that the node labels are just the DFS entry times.)
Though maybe comparing both low values might also work, I'd have to think about that...
https://www.boost.org/library/latest/graph/
https://www.boost.org/doc/libs/latest/libs/graph/doc/biconne...
Am I correct to suppose both are C++ implementations of Tarjan's algorithm?
You can write an algorithm to compute all of the articulation points & bridges & edge-biconnected components & vertex-biconnected components in a single DFS. Because of this you refer to all of them as just "Tarjan's algorithm" even if you just compute one of them (he is kind of the Euler of graph algorithms in that like half of graph algorithms is named after him). So, on a technical level, I guess my implementation is similar to the algorithm in Boost because they both use DFS and this `low` map, but they compute different things.
Finding the vertex-biconnected components next to the articulation points involves more work though (the implementation I used to have manages to also do it in the same pass but also maintains a stack of edges).
the strategy of the periphery for bioconnectedness hosts p-2-p network once intermediate node has identified bridges