HDU_1829

来源:互联网 发布:php 防止sql注入 编辑:程序博客网 时间:2024/05/17 08:37

//哎,怎么说呢,第一次的时候看别人的模板做出来的,觉得没得意思,后来自己又写了一遍,提交总是WA,然后又修改,问别人,终于发现自己的错误所在,原来我还没用并操作,就进行判断,活该错误,看来以后要多多思考,多多检查,这样自己才会进步。

代码:

#include<stdio.h>#define max 1000005int p[max];int rank[max];int a[max];int b[max];int find(int k){    int temp;    if(p[k]!=k)    {        temp=p[k];        p[k]=find(p[k]);        rank[k]=(rank[k]+rank[temp])%2;    }    return p[k];}int bing(int x,int y){    int x1=find(x);    int y1=find(y);    if(x1==y1)    {        return 0;    }    p[y1]=x1;    rank[y1]=(rank[x]-rank[y]+1)%2;    return 1;}int main(){    int k;    scanf("%d",&k);    int cnt=1;    while(k--)    {        int m,n,i;        scanf("%d%d",&m,&n);        for(i=0; i<=m; i++)        {            p[i]=i;            rank[i]=0;        }        int ok=0;        for(i=0;i<n;i++)        {            scanf("%d%d",&a[i],&b[i]);            bing(a[i],b[i]);        }        for(i=0;i<n;i++)        {            int a1=find(a[i]);            int b1=find(b[i]);            if(a1==b1)            {                if((rank[a[i]]-rank[b[i]]+2)%2==0)                {                    ok=1;                }            }        }       if(ok!=0)       {           printf("Scenario #%d:\nSuspicious bugs found!\n\n",cnt++);       }       else       {           printf("Scenario #%d:\nNo suspicious bugs found!\n\n",cnt++);       }    }    return 0;}

0 0
原创粉丝点击