hdu 1829 A Bug's Life (一个错误的生活)

来源:互联网 发布:单片机输入的是什么 编辑:程序博客网 时间:2024/05/21 09:51

这是一道并查集的问题,起初以为和以前那种求图中有无回路的问题。但是做了之后提交是WA 哭好吧,看了别人的解题报告后就做了。

题目的一是在给定的数据中判断有n个人,给你m对关系,问有没有同性恋的。

#include<stdio.h>int arr[2005];int set[2005];int findx(int x){int t;if(arr[x]==x)  return x; t=arr[x]; arr[x]=findx(arr[x]);set[x]=(set[x]+set[t]+2)%2;  return arr[x]; }void merge(int x, int y){int fx=findx(x);int fy=findx(y);arr[fx]=fy; set[fx]=(set[y]-set[x]+1+2)%2;}int main(){int n,a,b,x,y,k,i,flag;scanf("%d",&n);for(k=1;k<=n;k++){scanf("%d%d",&a,&b);for(i=1;i<=a;i++){arr[i]=i;set[i]=0;}flag=0;for(i=1;i<=b;i++){scanf("%d%d",&x,&y);if(findx(x)==findx(y)){if(set[x]==set[y])    flag=1;}elsemerge(x,y);}printf("Scenario #%d:\n",k);if(flag)    printf("Suspicious bugs found!\n");else     printf("No suspicious bugs found!\n");printf("\n");}return 0;}


 

0 0
原创粉丝点击