| ||||||||||
| 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 | |||||||||
我想你的问题在于看下文In Reply To:我的食物链哪里有问题?高手GG帮帮忙看看 xx Posted by:herogxo at 2006-12-06 12:03:15 >
我想你的问题在于下面的代码付值错误.除了为a[x]=1;a[y]=2;以外,还可能为:a[x]=2;a[y]=3;或者a[x]=3,a[y]=1.解决办法我还没有想好.你自己再看看吧.如果说误了请指正.呵呵~
--------------------------传说中的分割线--------------------------
if(a[x]==0&&a[y]==0)
{
if(d==1)
a[x]=a[y]=1;//可能都为2或者3
else //可能有上边的那种结果
{
a[x]=1;
a[y]=2;
}
}
--------------------------传说中的分割线--------------------------
//显示wrong answer 不知道哪里有问题 我自己输出的结果是对的 自己举了几个例子也符合
>
> #include <stdio.h>
> #define N 50000
> #define K 100000
>
> int main()
> {
> int n,k,d,x,y,a[N+1],num=0,i;
> scanf("%d %d",&n,&k);
> for(i=0;i<=n;i++)
> a[i]=0;
> for(i=0;i<k;i++)
> {
> scanf("%d %d %d",&d,&x,&y);
> if(x>n||y>n)
> {
> num++;
> continue;
> }
> if(d==2&&x==y)
> {
> num++;
> continue;
> }
> if(a[x]==0&&a[y]==0)
> {
> if(d==1)
> a[x]=a[y]=1;
> else
> {
> a[x]=1;
> a[y]=2;
> }
> }
> else if(a[x]!=0&&a[y]!=0)
> {
> if(d==2&&(a[x]==1&&a[y]==3||a[x]==2&&a[y]==1||a[x]==3&&a[y]==2||a[x]==a[y]))
> num++;
> else if(d==1&&a[x]!=a[y])
> num++;
> }
> else if(a[x]==0)
> {
> if(d==1)
> a[x]=a[y];
> else
> a[x]=(a[y]+1)%3+1;
> }
> else if(a[y]==0)
> {
> if(d==1)
> a[y]=a[x];
> else
> a[y]=a[x]%3+1;
> }
> }
> 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