ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ACWing 4216. 图中的环

2022-02-01 21:34:02  阅读:171  来源: 互联网

标签:输出 cnt 4216 NO int 样例 图中 YES ACWing


给定一个 nn 个点 mm 条边的无向图。

点的编号从 11 到 nn。

图中不含重边和自环。

请你对给定图进行判断,如果该图是一个有且仅有一个环的连通图,则输出 YES,否则输出 NO

输入格式

第一行包含两个整数 n,mn,m。

接下来 mm 行,每行包含两个整数 a,ba,b,表示点 aa 和点 bb 之间存在一条无向边。

输出格式

如果该图是一个有且仅有一个环的连通图,则输出 YES,否则输出 NO

数据范围

前三个测试点满足 1≤n≤101≤n≤10。
所有测试点满足 1≤n≤1001≤n≤100,0≤m≤n(n−1)20≤m≤n(n−1)2,1≤a,b≤n1≤a,b≤n。

输入样例1:

6 6
6 3
6 4
5 1
2 5
1 4
5 4

输出样例1:

YES

输入样例2:

6 5
5 6
4 6
3 1
5 1
1 2

输出样例2:

NO
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6   int n,m;
 7   cin>>n>>m;
 8   vector<int>G[105];
 9   vector<int>f(105,0);
10   int u,v;
11   for(int i=1;i<=m;i++)
12   {
13     cin>>u>>v;
14     G[u].push_back(v);
15     G[v].push_back(u);
16   }
17   function<int(int,int)>dfs=[&](int u,int fa)
18   {
19     if(f[u])return 0;
20     int cnt=1;
21     f[u]=1;
22     for(auto &v:G[u])
23     {
24       if(v!=fa)cnt+=dfs(v,u);
25     }
26     return cnt;
27   };
28   if(dfs(1,0)==n&&n==m)cout<<"YES"<<endl;
29   else cout<<"NO"<<endl;
30   
31   return 0;
32 }

 

标签:输出,cnt,4216,NO,int,样例,图中,YES,ACWing
来源: https://www.cnblogs.com/matt-su/p/15859661.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有