HDU 2094 产生冠军(拓扑排序)
来源:互联网 发布:kcf跟踪算法原理 编辑:程序博客网 时间:2024/05/16 19:16
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2094
题 意:给你几个选手的比赛胜负,让你判断是否产生冠军。
思 路:按图的方式输入,找到入度为0的点的个数进行判断(及拓扑排序的应用)。
代码如下:
#include <iostream>using namespace std;#include <string.h>#include <stdio.h>#include <climits>#include <algorithm>#define maxn 65535typedef __int64 LL;char ben[1200][20];int in[1200],si;int findx( char s[20] ){ int i; for( i = 0; i < si; i ++ ) if( strcmp( ben[i], s ) == 0 ) break; if( si == i ) strcpy(ben[si++],s);//若是没有出现过得选手则更新数组,把该选手加入 return i;}int main(){ int n; while( scanf ( "%d", &n ) != EOF ) { if( n == 0 ) break; memset( in, 0, sizeof( in ) ); si = 0; for( int i = 0; i < n; i ++ ) { char s1[20], s2[20]; scanf ( "%s %s", s1, s2 ); int p1 = findx(s1);//判断s1选手是否在里面 int p2 = findx(s2);//找到s2选手的位置,并将其的入度加1 in[p2]++; } int ans = 0; for( int i = 0; i < si; i ++ ) { if( in[i] == 0 ) ans++; if( ans > 1 ) break;//这种情况代表有几位选手没有分出胜负 } if( ans == 1 ) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- HDU 2094 产生冠军(拓扑排序)
- HDU-2094产生冠军-拓扑排序
- 产生冠军 HDU 2094 【拓扑排序】
- hdu 2094 产生冠军 拓扑排序
- HDU 2094产生冠军(拓扑排序)
- hdu 2094 产生冠军(拓扑排序)
- hdu 2094 产生冠军 (拓扑排序)
- hdu 2049 产生冠军(拓扑排序)
- (拓扑排序 )hdu 2094 产生冠军
- HDU 2094产生冠军(拓扑排序+map)
- hdu 2094 产生冠军(水题,拓扑排序)
- hdu 2094 产生冠军(拓扑排序 easy)
- HDU 产生冠军(拓扑排序)
- HDOj 2094 产生冠军(拓扑排序)
- 【HDU】2094 - 产生冠军(拓扑 & STL)
- 产生冠军(拓扑排序)
- 产生冠军 (拓扑排序)
- 拓扑排序-产生冠军
- 二分之求零点
- 数据结构 C语言实现选择排序
- 关于fragment的构造函数问题
- 适配器模式
- 远程执行命令的psexec工具的基本使用——简单、强大
- HDU 2094 产生冠军(拓扑排序)
- spring quartz定时器,及其动态处理方式
- 仿淘宝购物车demo---增加和减少商品数量
- javascript字符串
- HDU 4710 Balls Rearrangement
- 个人对深度优先搜索和广(宽)度优先搜索的理解
- BPM那些事儿——BPM的产生缘由
- UVA 10055 -Hashmat the Brave Warrior
- iOS申请开发者账号问题总结