zoukankan      html  css  js  c++  java
  • hdu 2094 产生冠军

    本题链接:点击打开链接

    本题大意:

            有n名队员。已知每名队员打比赛的输赢,问,是否能据此确定冠军。

    解题思路:

            就是将全部比赛中失败过的做标记,据题知:失败过的就不可能再成为冠军,所以就看最后未标记的有几个,若仅仅有一个,则说明其就是所认定的冠军,否则就确定不了冠军。

    主要是字符串难处理,详细请參见代码:

    #include<stdio.h>
    #include<string.h>
    char str[1010][100];
    char win[100],lose[100];
    int mark[1010];
    int main()
    {
    	int n,i,sum;
    	while(scanf("%d",&n),n)
    	{
    		i=0;
    		memset(mark,0,sizeof(mark)); 
    		while(n--)
    		{
    			int flagw=0,flagl=0;//flagw 标记出现过的赢者,flagl标记出现过的输者 
    			scanf("%s%s",win,lose);
    			if(i==0)
    			{
    				strcpy(str[i++],win);
    				strcpy(str[i++],lose);
    				mark[i-1]=1;//mark loser;
    			}
    			else
    			{
    				for(int j=0;j<i;j++)
    				{
    					if(strcmp(str[j],win)==0)
    						flagw=1;			//标记已登记过的winer
    					if(strcmp(str[j],lose)==0)
    					{
    						mark[j]=1;		//标记输者 
    						flagl=1;			//标记已登记过的loser 
    					}					
    				}						
    				if(!flagw)
    					strcpy(str[i++],win);
    				if(!flagl)
    				{
    					strcpy(str[i++],lose);
    					mark[i-1]=1;
    				}				
    			}
    		}
    		sum=0;
    		for(int j=0;j<i;j++)
    		{
    			if(mark[j]==0)//查找未被标记过的 
    			sum++;
    		}			
    		if(sum!=1)//若有多个未被标记。则无法确定冠军 
    			printf("No
    ");
    		else
    			printf("Yes
    ");
    	}
    	return 0;
    }


     

  • 相关阅读:
    centos 7安装gitlab及使用
    jenkins配置自动执行sql脚本
    zabbix监控mysql主从同步
    linux服务器通过mailx邮件发送附件到指定邮箱
    监控pos收银机
    elk安装与配置
    zabbix实时监控mysql业务数据
    Build Eclipse plug-in for Hadoop
    io 一不小心 关闭不住的偶
    hdu 1059二进制优化背包问题
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6991653.html
Copyright © 2011-2022 走看看