Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
实在没办法了,一直WA,找不到错误,那位大牛来帮帮忙?#include<iostream> using namespace std; int pre[50010],kind[50010]; int g1,g2; int find(int x,int reme) { int _x,h=x; int s,sign=0; while(pre[h]!=h) { sign=(sign+kind[h])%3; h=pre[h]; } s=sign; while(pre[x]!=x) { _x=pre[x]; pre[x]=h; kind[x]=s; s=(3-kind[_x]+s)%3; x=_x; } if(reme==1) g1=sign; else g2=sign; return h; } int main() { int cas,n,i,d,x,y,num=0,_x,_y; scanf("%d%d",&cas,&n); for(i=1;i<=cas;i++) { pre[i]=i; kind[i]=0; } for(i=0;i<n;i++) { scanf("%d%d%d",&d,&x,&y); if(x>cas || y>cas) num++; else if(d==2 && (x==y)) num++; else { _x=find(x,1);_y=find(y,2); if(_x!=_y) {pre[_x]=_y;kind[_x]=(2+d-g1+g2)%3;} else if(d==1 && g1!=g2) num++; else if(d==2 && (3-g2+g1)%3!=1) num++; } } printf("%d\n",num); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator