程序自动分析

大水题,还提高+/省选-

先离散一下,然后getfa和combine就行

部分代码:

 1 for(int i=1;i<=n;++i)
 2         {
 3             a[i].x=read(); a[i].y=read(); a[i].e=read();
 4             ls[++cnt]=a[i].x;
 5             ls[++cnt]=a[i].y;
 6         }
 7         sort(ls,ls+cnt);
 8         int tmp=unique(ls,ls+cnt)-ls;
 9         for(int i=1;i<=n;++i)
10         {
11            a[i].x=lower_bound(ls,ls+tmp,a[i].x)-ls;
12            a[i].y=lower_bound(ls,ls+tmp,a[i].y)-ls;   
13         } 
无脑离散
 1 for(int i=1;i<=n;++i)
 2         {
 3             int t1=getfa(a[i].x),t2=getfa(a[i].y);
 4             if(a[i].e) fa[t1]=t2;
 5             else if(t1==t2)
 6             {
 7                 printf("NO\n");
 8                 flag=false;
 9                 break;
10             }
11         }
12         if(flag) printf("YES\n");
13     }
无脑并查集

然后,就...无脑做完

猜你喜欢

转载自www.cnblogs.com/cptbtptpbcptbtptp/p/11397322.html