• 题意:给你一张图,对其染色,使得相连的点的颜色两两不同求,最少使用多少种颜色.

  • 题解:首先,若\(n=1\),只需要一种.然后我们再去判断是否是二分图,对于二分图,两种颜色就够了,若不是二分图,也就是可能存在奇环的情况,那么三种颜色铁够了.所以题目就转化成了判断是否是二分图.

  • 代码:

    int n,m;
    int u,v;
    int color[N];
    vector<int> V[N]; bool dfs(int u,int c){
    color[u]=c; for(auto w:V[u]){
    if(!color[w]){
    if(!dfs(w,3-c)) return false;
    }
    else{
    if(color[w]==c) return false;
    }
    }
    return true;
    } int main() {
    //ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    scanf("%d %d",&n,&m); for(int i=1;i<=m;++i){
    scanf("%d %d",&u,&v);
    V[u].pb(v);
    V[v].pb(u);
    }
    if(n==1){
    puts("1");
    return 0;
    }
    bool flag=true;
    for(int i=1;i<=n;++i){
    if(!color[i]){
    if(!dfs(i,1)){
    flag=false;
    break;
    }
    }
    } if(!flag) puts("3");
    else puts("2"); return 0;
    }

最新文章

  1. centos下为大硬盘分区(大于2T)
  2. 让LinqToSQL使用Web.Config中的链接字符串(修改Settings.Designer.cs)
  3. 从零到有的lex学习
  4. node简单操作mysql的类
  5. NLP的两种工具的java版使用:复旦FudanNLP,中科院计算所ICTCLAS2013
  6. Ubuntu 14.10 下awk命令详解
  7. oracle客户端精简绿色版-环境变量配置
  8. [SQL] 要查询9 月份的数据中的任意时间段,可能是一个月的,也可能是1日到15日的
  9. CSS3属性之一:border-radius
  10. linux 学习之九、Linux 磁盘与文件系统管理(1)
  11. 在git彻底删除commit记录的方法是什么?
  12. Appium0.18.x迁移到Appium1.x须知事项(灰常实用,解答了本人几个疑问)
  13. POJ - 2828 Buy Tickets (段树单点更新)
  14. 使用ConfuserEx加密混淆程序以及如何脱壳反编译
  15. JavaScript(三) 数据类型
  16. LAB1 partI
  17. java时间计算
  18. &lt;Listener&gt;servletContextListener、httpSessionListener和servletRequestListener使用整理
  19. 关于react16.4——转发refs和片段Fragment
  20. 搜索入门_简单搜索bfs dfs大杂烩

热门文章

  1. selenium自动化 | 借助百度AI开放平台识别验证码登录职教云
  2. 彻底搞懂MySQL为什么要使用B+树索引
  3. 【Python】PDF转WORD
  4. C语言字符串结束符“\0”
  5. Python批量 png转ico
  6. Nginx基础环境搭建
  7. Python数据模型与Python对象模型
  8. 线上一次大量 CLOSE_WAIT 复盘
  9. cookie中的domain和path
  10. promise有几种状态,什么时候会进入catch