hdu2094
来源:互联网 发布:二手交易软件 编辑:程序博客网 时间:2024/06/05 07:54
链接:点击打开链接
题意:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。
代码:
#include <iostream>#include <string.h>#include <stdio.h>using namespace std;char str[1005][500],a[1005],b[1005];int prefix[1005];int main(){ int i,j,k,n,sum,sign; while(cin>>n&&n){ memset(str,0,sizeof(str)); memset(prefix,0,sizeof(prefix)); k=1; for(i=1;i<=n;i++){ cin>>a>>b; sign=0; for(j=1;j<=n;j++) if(strcmp(str[j],a)==0){ sign=1; break; } if(!sign) //如果没有出现过这个名字则往里添加 strcpy(str[k++],a); sign=0; for(j=1;j<=n;j++) if(strcmp(str[j],b)==0){ prefix[j]++; sign=1; break; } if(!sign){ strcpy(str[k],b); prefix[k]++; k++; } //处理b时和处理a一样,只不过需要更新prefix数组 } sum=0; for(i=1;i<k;i++){ //只有一个prefix数组值为0时才输出yes,就是冠军只有一个,有环或则有关系不确定的输出no// cout<<prefix[i]<<endl; if(!prefix[i]) sum++; } if(sum==1) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- hdu2094
- HDU2094
- HDU2094
- HDU2094
- hdu2094
- HDU2094
- hdu2094 map
- hdu2094 产生冠军
- hdu2094 map应用
- hdu2094产生冠军
- HDU2094:产生冠军(模拟)
- hdu2094产生冠军
- HDU2094产生冠军
- HDU2094 产生冠军 【STL】
- hdu2094 产生冠军 (set)
- HDU2094 产生冠军
- hdu2094 简单图论
- hdu2094产生冠军
- java大话设计模式之一----简单工厂模式
- 使用Junit4进行单元测试的相关配置
- mysql重启
- linux(五)
- H.264 RTP PAYLOAD 格式
- hdu2094
- Android Studio Building 'xxx' Gradle project info
- 编程之美电梯调度问题
- [转]Python、Django以及PyCharm安装心得
- 聚焦GPUBoost 揭密GTX680最革命性变化
- Linux系统下安装配置jdk
- SparkStreaming找不到reduceByKey的解决方法
- nginx配置location总结及rewrite规则写法
- UE3 材质概述