产生冠军
2016-07-24 00:00
113 查看
include
include
include
include
include
include
include
using namespace std;///找出入度为0的有且只有一个即可以产生冠军,不用拓扑排序
int du[2005];
bool panDuan(int n)///判断所有点的入度为0的个数
{
int sum=0;
for(int i=1; i<=n; i++)
if(du[i]==0)
{
sum++;
if(sum>=2)return false;
}
if(sum==1)return true;
else return false;
}
int main()
{
int n;
while(scanf("%d",&n),n)
{
string a,b;
map m;///将人名映射成一个编号
memset(du,0,sizeof(du));
int k=0;
for(int i=1; i<=n; i++)
{
cin>>a >>b;
if(m[a]==0)m[a]=++k;///没有赋值之前初始值是0
if(m[b]==0)m[b]=++k;
du[m[b]]++;///入度加一
} if(panDuan(k))printf("Yes\n"); else printf("No\n"); } return 0;
}
相关文章推荐
- 畅通工程
- 外星人的供给站 (区间覆盖 t贪心)
- Dijkstra
- 营救天使(优先队列)
- Safecracker(搜索)
- JavaWeb基础知识:Html和Css实战WebView实现手机显示网页
- 这个暑假没有广告,只有惊喜,3000元婚纱免费任你拍,名额有限!
- UITextFiled、UITextView按字节限制输入长度
- Android常用颜色列表——color.xml
- Android实例——简易计算器
- linux文件系统
- 转:墨菲定律
- 安装Dubbo管理控制台
- 构建Dubbo服务的可执行jar包
- Python 经典类和新式类
- Java函数为什么没有默认参数
- Python 绑定方法和未绑定方法
- Python中__new__与__init__方法的区别详解
- android studio jar 包添加 的 三种方法
- MD5 的加密