当前位置: 首页> 健康> 知识 > 江门网站推广排名_潍坊专升本考试地点_网络营销的方式包括_百度软件开放平台

江门网站推广排名_潍坊专升本考试地点_网络营销的方式包括_百度软件开放平台

时间:2025/7/17 22:36:27来源:https://blog.csdn.net/lq1990717/article/details/146888190 浏览次数:0次
江门网站推广排名_潍坊专升本考试地点_网络营销的方式包括_百度软件开放平台

【题目链接】

ybt 1524:旅游航道

【题目考点】

1. 图论:割边(桥)

【解题思路】

一个星球是一个顶点,一条航道是一条无向边,任意两星球之间可以通过航道到达,说明该图是连通图。可以认为输入数据中没有重边和自环。
“如果某一条航道的删除使得一些星球不能到达,那么这条航道是不能删除的,称之为「主要航道」”,显然主要航道就是桥。
该题求一个连通图的桥的数量,使用tarjan算法可以完成。

【题解代码】

解法1:tarjan算法求桥

#include<bits/stdc++.h>
using namespace std;
#define N 30005
int m, n, fa[N], dfn[N], low[N], ts, ans;
vector<int> edge[N];
void tarjan(int u)
{dfn[u] = low[u] = ++ts;for(int v : edge[u]){if(dfn[v] == 0){fa[v] = u;tarjan(v);low[u] = min(low[u], low[v]);if(dfn[u] < low[v])ans++;}else if(v != fa[u])low[u] = min(low[u], dfn[v]);}
}
int main()
{int a, b;while(cin >> n >> m && n && m)//n是顶点数 m是边数  {memset(dfn, 0, sizeof(dfn));memset(fa, 0, sizeof(fa));ans = 0;for(int i = 1; i <= n; ++i)edge[i].clear();for(int i = 1; i <= m; ++i){cin >> a >> b;edge[a].push_back(b);edge[b].push_back(a);}tarjan(1);//连通图只需要调用一次cout << ans << endl; }return 0;
}
关键字:江门网站推广排名_潍坊专升本考试地点_网络营销的方式包括_百度软件开放平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: