ABC 404
1.C 题:
1.思路: N=M&每个点读数为2,但图中有可能出现多环,需要判断所有点是否都在同一连通块上,有俩种解法:搜索,循环
2.代码(循环做法)
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
vector<int> g[N];
int n,m,a,b,vis[N];
int main(){cin>>n>>m;for(int i=1;i<=m;i++){cin>>a>>b;g[a].push_back(b);g[b].push_back(a);}for(int i=1;i<=n;i++){if(g[i].size()!=2) {cout<<"No"<<endl;return 0;}}int x=g[1][0],cnt=1;vis[1]=1;while(!vis[x]){vis[x]=1;cnt++;if(!vis[g[x][0]]) x=g[x][0];else x=g[x][1];} if(cnt==n)cout<<"Yes"<<endl; else cout<<"No"<<endl;}