码迷,mamicode.com
首页 > 其他好文 > 详细

ADV-黑白染色

时间:2017-03-29 13:11:47      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:i++   int   输入   std   else   没有   break   class   void   

只写了进行一次的代码,和题目的差异就是少了输入可以测试几个样例。

#include<stdio.h>
int queue[1000];
int color[100];
int book[100];
int n,m;
int ans;
int map[100][100];
int tab;
void bfs(int step){
    int head=0,rear=0;
    queue[rear++]=step;
    color[step]=1;
    book[step]=1;
    while(head<rear){
        int temp=queue[head++];
        for(int i=1;i<=n;i++){
            tab=0;
            if(map[temp][i]==1){
                if(color[i]==0){
                    color[i]-=color[temp];
                    queue[rear++]=i;
                    book[i]=1;
                }
                else if(color[i]==color[temp]){
                    tab=1;
                    ans=-1;
                    break;
                }
            }
        }
        if(tab) break;
    }
}
int main(){
    scanf("%d%d",&n,&m);
    ans=0;
    int x,y;
    for(int i=1;i<=m;i++){
        scanf("%d%d",&x,&y);
        map[x][y]=1;
        map[y][x]=1;
    }
    for(int i=1;i<=n;i++){
        if(book[i]==0)
            bfs(i);
        if(tab) break;
    }
    if(ans==0){
        for(int i=1;i<=n;i++){
            if(color[i]==-1)
                ans++;
        }
        printf("%d\n",ans);
        for(int i=1;i<=n;i++){
            if(color[i]==-1)
                printf("%d ",i);
        }
        printf("\n");
    }
    else printf("%d\n",ans);
}

 

测试用例 
9    //本代码没有这个次数输入,每次只能一次
5 5
1 2 2 3 3 4 4 5 5 1
6 6
1 2 2 3 3 4 4 5 5 6 6 1
4 5
1 2 2 3 3 4 4 1 4 2
4 6
1 2 2 3 3 4 4 1 4 2 1 3
4 4
1 2 2 3 3 4 4 1
5 6
1 2 1 4 2 3 2 5 3 4 5 4 
12 13
1 2 1 4 2 3 3 4 4 5 5 6 6 7 7 8 8 5 5 9 4 10 9 10 11 12
5 4
1 4 1 3 3 5 2 5
7 5
1 4 1 3 3 5 2 5 6 7
测试结果
-1
3
2 4 6 
-1
-1
2
2 4 
2
2 4 
6
2 4 6 8 9 12 
3
2 3 4 
4
2 3 4 7 
 

 

ADV-黑白染色

标签:i++   int   输入   std   else   没有   break   class   void   

原文地址:http://www.cnblogs.com/lvcoding/p/6638897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!