zoukankan      html  css  js  c++  java
  • UVA 10004 Bicoloring 解题报告

    题意:给定一个强联通无向图(没有独立点),相邻节点不能同色,问能否用两种颜色涂色整个联通图;

    解题思路:深搜;

    解题代码:

    // File Name: uva10004.1.c
    // Author: darkdream
    // Created Time: 2013年06月15日 星期六 19时30分33秒
    
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    int map[300][300];
    int visit[300];
    int ok, n ;
    void dfs(int k , int sum)
    {
      for(int i = 0;i < n; i++)
      {
        if(map[k][i] == 1 && visit[i]!= 0)
        {
           if(visit[i] == visit[k])
           {
               ok = 0;
               return;
           
           }
        }
      }
      for(int i =0 ;i < n;i++)
      {
         if(map[k][i] && visit[i] == 0)
         {
            if(visit[k] == 1)
                visit[i] = 2;
            else
                visit[i] = 1;
            dfs(i,sum+1);
         }
      }
    }
    
    int main(){
    
       //freopen("/home/plac/problem/input.txt","r",stdin);
       //freopen("/home/plac/problem/output.txt","w",stdout);
        while(scanf("%d",&n) != EOF,n)
        {
           ok = 1 ;
           memset(map,0,sizeof(map));
           memset(visit,0,sizeof(visit));
           int m,a,b;
           scanf("%d",&m);
           while(m--)
           {
             scanf("%d %d",&a,&b);
             map[a][b] = 1 ;
             map[b][a] = 1;
           }
           visit[0] = 1;
           dfs(0,1);
           /*for(int i = 0 ;i < n;i ++)
               printf("%d ",visit[i]);
           printf("\n");*/
           if(ok)
            printf("BICOLORABLE.\n");
           else
            printf("NOT BICOLORABLE.\n");
        }
        
    return 0 ;
    }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    TensorFlow实战5——TensorFlow实现AlexNet
    TensorFlow实战4——TensorFlow实现Cifar10识别
    TensorFlow实战3——TensorFlow实现CNN
    基础定理推证
    中考几何汇总
    Onenote
    高中数学教材整理
    云盘
    12-27问题
    圆锥曲线(1)
  • 原文地址:https://www.cnblogs.com/zyue/p/3137946.html
Copyright © 2011-2022 走看看