专栏文章

题解:AT_abc404_c [ABC404C] Cycle Graph?

AT_abc404_c题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipdejzx
此快照首次捕获于
2025/12/03 10:11
3 个月前
此快照最后确认于
2025/12/03 10:11
3 个月前
查看原文
简单题,直接 DFS 扫一遍,看有没有经过重复点并且这时其它点都已经走过即可。
代码:
CPP
#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;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...