为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
USACO/rotation analysis
来自NOCOW
< USACO
{ TASK:rotation LANG:PASCAL } VAR a,b,c,i,n,ans:longint; BEGIN assign(input,'rotation.in'); assign(output,'rotation.out'); reset(input); rewrite(output); readln(n); for i:=1 to n-1 do BEGIN readln(a,b,c); ans:=ans xor c; END; writeln(ans); close(input); close(output); END.
/* TASK:rotation LANG:C */ #include<stdio.h> #include<string.h> struct roll{ int circle,map[1001],num,p[1001]; }; roll a[1001]; int n,queue[1001]; int main() { freopen("rotation.in","r",stdin); freopen("rotation.out","w",stdout); memset(a,-1,sizeof(a)); scanf("%d",&n); int i,j,x,y; for(i=1;i<=n;i++)a[i].num=0; for(i=1;i<n;i++) { scanf("%d%d",&x,&y); scanf("%d",&a[x].p[++a[x].num]); a[x].map[a[x].num]=y; } a[1].circle=0; int front=0,back=1,ok=0; queue[1]=1; while(ok==0&&front<back) { front++; for(i=1;i<=a[queue[front]].num;i++) { if(a[a[queue[front]].map[i]].circle<0) { a[a[queue[front]].map[i]].circle=(a[queue[front]].circle+a[queue[front]].p[i])%2; if(a[queue[front]].map[i]==n)ok=1; queue[++back]=a[queue[front]].map[i]; } } } printf("%d\n",a[n].circle); return 0; }
广搜的,题目本身只是一条链……
/* TASK:rotation LANG:C++ */ #include<stdio.h> int n,s[1001],d[1001],c[1001]; int main() { freopen("rotation.in","r",stdin); freopen("rotation.out","w",stdout); int i,j=1,f=0; scanf("%d",&n); for(i=1; i<n; i++) { scanf("%d%d%d",&s[i],&d[i],&c[i]); if(s[i]==1) {if(c[i]==1) f=!f; j=d[i];} } while(j!=n) { for(i=1; i<n; i++) if(s[i]==j) break; j=d[i]; if(c[i]==1) f=!f; } printf("%d\n",f); return 0; }
诶,本以为有可能不是一条链,会有坑人的数据的…………