您的位置:首页 > 其它

hdu2094产生冠军

2016-05-25 14:21 274 查看
中文题,题意就不说了。

可以模拟来做,用一个字符串数组存储选手名,再相应的维护一个数组存储输赢,1代表赢,0代表输。最后遍历一下数组,如果只有一个1,就Yes,否则,就No

<p>#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int n;
char s[2100][1100];
int main()
{
    int i,j;</p><p>    int a[2100];
    while(scanf("%d",&n),n!=0)
    {
        memset(a,0,sizeof(a));
        memset(s,0,sizeof(s));
        for(i=1; i<=2*n; i+=2)
        {
            scanf("%s",s[i]);
            scanf("%s",s[i+1]);
            a[i]=1,a[i+1]=0;
            j=i;
            for(j=1; j<i; j++)
            {
                if(strcmp(s[i],s[j])==0)//如果找到一样的话,就把他赋值为0,注意是a[i]赋值为0;
                    a[i]=0;
                if(strcmp(s[i+1],s[j])==0)//如果找到的话,把a[j]赋值为0;(想一想为什么前后两个赋值对象不一样)
                    a[j]=0;
            }
        }
        int count=0;
        for(i=1; i<=2*n; i++)
        {
            if(a[i])
                count++;
        }
        if(count==1)
            printf("Yes\n");
        else
            printf("No\n");
    }
    return 0;
}
</p>


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: