hdu 1829 A Bug's Life (一个错误的生活)
2014-11-06 20:18
441 查看
这是一道并查集的问题,起初以为和以前那种求图中有无回路的问题。但是做了之后提交是WA
好吧,看了别人的解题报告后就做了。
题目的一是在给定的数据中判断有n个人,给你m对关系,问有没有同性恋的。
好吧,看了别人的解题报告后就做了。
题目的一是在给定的数据中判断有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; } else merge(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; }
相关文章推荐
- hdu 1829 &poj 2492 A Bug's Life(推断二分图、带权并查集)
- hdu 1829 A Bug's Life(分组并查集)
- HDU 1829 A Bug's Life(并查集的应用)
- hdu 1829 A Bug's Life (基础并查集)
- hdu 1829 A Bug's Life(带权并查集)
- hdu 1829 A Bug's Life
- HDU 1829 A Bug's Life (并查集)
- hdu 1829 A Bug's Life ( 并查集 )
- HDU 1829 A bug's life
- hdu 1829 A Bug's Life
- hdu 1829 &poj 2492 A Bug's Life(判断二分图、带权并查集)
- HDU 1829 A Bug's Life (分组并查集)
- HDU 1829 A Bug's Life(带关系的并查集)
- hdu 1829 A Bug's Life(种类并查集)
- HDU 1829 A Bug's Life (并查集)
- hdu 1829:A Bug's Life
- HDU-1829 A Bug's Life (带权并查集)
- hdu 1829 A Bug's Life
- HDU - 1829 A Bug's Life (并查集应用)
- hdu 1829 A Bug's Life(并查集)