P1656炸铁路
一、题目描述
二、解题思路
tarjan求割边模板题,用个答案数组存答案,求出来后排序就可以了。
三、代码实现
1 #include "bits/stdc++.h" 2 using namespace std; 3 int G[200][200]; 4 int low[200],dfn[200],t = 1; 5 int root = 1; 6 int m,n; 7 vector <pair<int,int>> ans; 8 void dfs(int cur,int father) 9 { 10 low[cur] = t; 11 dfn[cur] = t; 12 t++; 13 for(int i = 1;i <= n;i++){ 14 if(G[cur][i]){ 15 if(dfn[i] == 0){ 16 dfs(i,cur); 17 low[cur] = min(low[cur],low[i]); 18 if(low[i] > dfn[cur]) 19 ans.emplace_back(make_pair(cur,i)); 20 } 21 else if(i != father) 22 low[cur] = min(dfn[i],low[cur]); 23 } 24 } 25 return; 26 } 27 int main() 28 { 29 int x,y; 30 cin >> n >> m; 31 for(int i = 1;i <= n;i++) 32 for(int j = 1;j <= n;j++) 33 G[i][j] = 0; 34 for(int i = 1;i <= m;i++){ 35 cin >> x >> y; 36 G[x][y] = 1; 37 G[y][x] = 1; 38 } 39 dfs(1,root); 40 sort(ans.begin(),ans.end()); 41 for(auto &u: ans) 42 cout << u.first << ' ' << u.second << endl; 43 return 0; 44 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析