[ABC287C] Path Graph?
[ABC287C] Path Graph?
题目大意:给你一张无向图,问你是不是链。
显然,如果一个图是链,必然满足有两个点(端点)度数为 ,其他点度数为 。
但是这样上去是有问题的。
因为这个图不一定连通。
所以我们考虑先判断联通,在考虑是不是链。
做法是,我们就随便找一个点,往两边去遍历,如果能遍历到全部点,那就是连通的。
复杂度为 ,爆锤并查集做法。
#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10;
int total[N],vis[N];
vector<int> g[N<<1];
int p;
void dfs(int u)
{
for(int i=0;i<g[u].size();i++)
{
int v=g[u][i];
if(vis[v]==1)
continue;
p++;
vis[v]=true;
dfs(v);
}
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=1,u,v;i<=m;i++)
cin>>u>>v,g[u].push_back(v),g[v].push_back(u),total[u]++,total[v]++;
dfs(1);
if(p!=n)
cout<<"No"<<endl,exit(0);
int sum=0,ans=0;
for(int i=1;i<=n;i++)
{
if(total[i]==1)
sum++;
if(total[i]==2)
ans++;
}
if(sum==2&&ans==n-2)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现