AtCoder Beginner Contest 404 C-G(无F)题解

打印 上一主题 下一主题

主题 1922|帖子 1922|积分 5770

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
C. Cycle Graph?

题意

给你一个 \(N\) 个极点 \(M\) 条边的简单(无重边、自环)无向图,第 \(i\) 条边毗连节点 \(A_i\) 和 \(B_i\),判断这个图是不是一个环。
思路

起首一个图是环,要满足点数等于边数,即 \(N=M\);
其次,这个图必须连通,可以通过 \(\text{DFS}\) 或 \(\text{BFS}\) 搜索判断是否连通(从恣意一点开始搜,竣事后检查是否每个点都已到达过);
最后,每个点的度数(所毗连的极点数)必须为 \(2\)。
可以证明,只要满足上述三个条件,这个图一定是一个环。
C++ 代码

[code]#includeusing namespace std;const int maxn=200005;int n,m;int deg[maxn];vector g[maxn];bool used[maxn];void dfs(int v){        used[v]=true;        for(int x:g[v]){                if(!used[x]){                        dfs(x);                }        }}int main(){        cin>>n>>m;        if(n!=m){                cout>v;                g.push_back(v);                g[v].push_back(u);        }        dfs(1);        for(int i=1;i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表