Wannafly挑战赛27B(DFS,链表头插法)
#include<bits/stdc++.h>
using namespace std;
int cnt=0;
int flag=0;
int to[400007],nex[400007],vis[100007],head[100007];
void add(int a,int b){//链表的头插法,nex数组开成next交的时候会编译错误
to[++cnt]=b;
nex[cnt]=head[a];
head[a]=cnt;
}
void dfs(int a,int b){
for(int i=head[a];i!=0;i=nex[i]){//遍历这个点的邻接点
int v=to[i];
if(v==b)//此前在b的邻接点中已经遍历过该情况
continue;
if(vis[v]){//说明有环
int x=vis[a];
if((x-vis[v]+1)&1)//环的长度为奇数,这个时候需要三种颜色
flag=1;
return;
}
vis[v]=vis[a]+1;
dfs(v,a);
}
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
int x,y;
for(int i=1;i<=m;i++){
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
vis[1]=1;
dfs(1,0);
if(n==1)
printf("1");
else if(flag==1)
printf("3");
else if(flag==0)
printf("2");
return 0;
}
最新文章
- 3步完成chrome切换搜索引擎
- java 获取系统当前时间
- CSS盒子模型学习记录2
- Android-activity-intent
- JQuery实现分页程序代码,源码下载
- Solr总结
- NetworkOnMainThreadException
- Struts2 单文件上传
- (C语言)共用体union的使用方法举例
- java基础之继承(二)
- [文摘]Quick Start to Client side COM and Python
- 【WebGIS系列】Typescript+WebGL+Webpack开发环境搭建
- python DB-API
- Access restriction: The constructor SunJCE() is not accessible 错误
- Codeforces Round #516(Div 2)
- rails gem更换ruby-china源
- 【uoj122】 NOI2013—树的计数
- Fedora 24 python3.5 安装M2Crypto
- Node.js:常用工具、路由
- 20145328 《Java程序设计》第8周学习总结