#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;
}

最新文章

  1. 3步完成chrome切换搜索引擎
  2. java 获取系统当前时间
  3. CSS盒子模型学习记录2
  4. Android-activity-intent
  5. JQuery实现分页程序代码,源码下载
  6. Solr总结
  7. NetworkOnMainThreadException
  8. Struts2 单文件上传
  9. (C语言)共用体union的使用方法举例
  10. java基础之继承(二)
  11. [文摘]Quick Start to Client side COM and Python
  12. 【WebGIS系列】Typescript+WebGL+Webpack开发环境搭建
  13. python DB-API
  14. Access restriction: The constructor SunJCE() is not accessible 错误
  15. Codeforces Round #516(Div 2)
  16. rails gem更换ruby-china源
  17. 【uoj122】 NOI2013—树的计数
  18. Fedora 24 python3.5 安装M2Crypto
  19. Node.js:常用工具、路由
  20. 20145328 《Java程序设计》第8周学习总结

热门文章

  1. 模拟C#的事件处理和属性语法糖
  2. JavaWeb中文件的上传和下载
  3. AngularJS-指令command
  4. codeforces 631A A. Interview
  5. android sqlite,大数据处理、同时读写
  6. [Luogu3960][NOIP2017]列队
  7. Eclipse或MyEclipse中给第三方jar包添加源码步骤
  8. Aravis 库编译方法
  9. 洛谷【P1090】合并果子&amp;&amp;洛谷【P1334】瑞瑞的木板
  10. Go中使用动态库C/C++库