ABC404C题解
简单题,直接 DFS 扫一遍,看有没有经过重复点并且这时其它点都已经走过即可。
代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+5;
vector<int>e[N];
int vis[N];
int n,m;
void dfs(int x,int fa)
{
for(auto v:e[x])
{
if(v!=fa&&vis[v])
{
int flag = 0;
for(int i = 1;i<=n;i++)
{
if(!vis[i])
{
flag = 1;
break;
}
}
if(!flag)
{
printf("Yes");
}
else
{
printf("No");
}
exit(0);
}
else if(v!=fa)
{
vis[v] = 1;
dfs(v,x);
}
}
}
signed main()
{
scanf("%d %d",&n,&m);
for(int i = 1;i<=m;i++)
{
int x,y;
scanf("%d %d",&x,&y);
e[x].push_back(y);
e[y].push_back(x);
}
vis[1] = 1;
dfs(1,0);
printf("No");
return 0;
}

浙公网安备 33010602011771号