关注
B题是 双联通分量,用Tarjan扫一遍,重新建图然后减掉最深的两条路径 void tarjan(int u, int pre) //Tarjan强连通 { vis[u] = true; dfn[u] = low[u] = ++dep; st.push(u); fa[u] = true; for (int i = s[u]; ~i; i = edge[i].nxt) { int v = edge[i].v; if (edge[i].flag == false) continue; edge[i].flag = edge[i ^ 1].flag = false; if (!vis[v]) { tarjan(v, u); low[u] = min(low[u], low[v]); if (dfn[u]<low[v]) { bridge[bri_cnt][0] = u; bridge[bri_cnt++][1] = v; } } else if (fa[v]) low[u] = min(low[u], dfn[v]); } if (dfn[u] == low[u]) { int t; do { id[t = st.top()] = res; st.pop(); fa[t] = false; } while (t != u); res++; } } int dfs(int u, int pre) { int tmp = 0; for (int i = s[u]; ~i; i = edge[i].nxt) { int v = edge[i].v; if (v == pre) continue; int d = dfs(v, u); pre_d = max(pre_d, tmp + d); tmp = max(tmp, d); } return tmp + 1; }
查看原帖
点赞 1
相关推荐
04-28 17:10
西南民族大学 用户研究员 点赞 评论 收藏
分享

点赞 评论 收藏
分享
03-18 09:45
莆田学院 golang 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习要如何选择和准备? #
49480次浏览 777人参与
# 学历or实习经历,哪个更重要 #
90256次浏览 650人参与
# 大疆求职进展汇总 #
473945次浏览 3182人参与
# 摸鱼被leader发现了怎么办 #
46323次浏览 321人参与
# 潍柴工作体验 #
22202次浏览 18人参与
# 你最满意的offer薪资是哪家公司? #
20493次浏览 120人参与
# 如果可以,你希望哪个公司来捞你 #
69521次浏览 293人参与
# 你觉得通信/硬件有必要实习吗? #
96976次浏览 893人参与
# Offer比较,求稳定还是求发展 #
44047次浏览 228人参与
# 来聊聊机械薪资天花板是哪家 #
114792次浏览 721人参与
# 硬件兄弟们 甩出你的华为奖状 #
97794次浏览 670人参与
# 找工作,行业重要还是岗位重要? #
22163次浏览 384人参与
# 金融财会交流会 #
103388次浏览 361人参与
# 机械人与华为的爱恨情仇 #
107872次浏览 923人参与
# 24届硬件人与华为的爱恨情仇 #
122455次浏览 962人参与
# 机械人怎么评价今年的华为 #
192883次浏览 1502人参与
# 运营面经 #
103588次浏览 1202人参与
# 外包能不能当跳板? #
27566次浏览 192人参与
# 实习工作,你找得还顺利吗? #
397367次浏览 5425人参与
# 国企/银行/研究所公司爆料 #
126253次浏览 742人参与