#include <iostream>
#include <map>
#include <cstring>
using namespace std; int Graph[210][210];
int DP[210][2];
int count; void DFS( int index ){
DP[index][0] = 0;
DP[index][1] = 1;
for( int i = 1; i <= count; ++i ){
if( Graph[index][i] ){
DFS(i);
DP[index][0] += max( DP[i][0], DP[i][1] );
DP[index][1] += DP[i][0];
}
}
} bool check(){
for( int i = 1; i <= count; ++i ){
if( DP[i][0] == DP[i][1] ){
for( int j = 1; j <= count; ++j ){
if( Graph[i][j] == 1 && DP[j][0] == DP[j][1] ) return false;
}
}
}
return true;
} int main(){
while( true ){
memset( Graph, 0, sizeof(Graph) );
count = 1;
map<string, int>mapTemp;
int n;
cin>>n;
if( n == 0 ) break;
string boss;
cin>>boss;
mapTemp[boss] = count++;
for( int i = 2; i <= n; ++i ){
string son;
string parent;
cin>>son>>parent;
if( !mapTemp[son] ) mapTemp[son] = count++;
if( !mapTemp[parent] ) mapTemp[parent] = count++;
Graph[mapTemp[parent]][mapTemp[son]] = 1;
}
DFS(1);
cout<<max(DP[1][0], DP[1][1])<<" ";
if( n == 1 ){
cout<<"Yes"<<endl;
continue;
}
if( n == 2 ){
cout<<"No"<<endl;
continue;
}
if( check() ){
cout<<"Yes"<<endl;
continue;
}
if(!check()){
cout<<"No"<<endl;
continue;
}
}
return 0;
}

POJ_3342_Party_at_Hali-Bula的更多相关文章

  1. poj 3680 Intervals

    给定N个带权的开区间,第i个区间覆盖区间(ai,bi),权值为wi.现在要求挑出一些区间使得总权值最大,并且满足实轴上任意一个点被覆盖不超过K次. 1<=K<=N<=200.1< ...

  2. jQuery 遍历 - parent() 方法

    ylbtech-jQuery-sizzle:jQuery 遍历 - parent() 方法  parent() 获得当前匹配元素集合中每个元素的父元素,使用选择器进行筛选是可选的. 1.A,jQuer ...

  3. PHP die与exit的区别

    最近听见有人说die和exit区别,bula~bula.决心一探究竟. 翻了翻PHP 5.6的源码(源码的位置为zend目录下zend_language_scanner.l大约是1014~1020行) ...

  4. 二、jenkins配置email(以腾讯企业qq为例)

    废话不多说,直接上干货: 主要针对两个部分进行介绍: 1.jenkins内置的邮件功能: 2.Editable Email Notification插件的邮件功能: 低版本的jenkins有很多插件都 ...

  5. CTAssetsPickerController 选中图片不显示对号的问题解决

    转载自:http://blog.csdn.net/qq_27304667/article/details/53218547 早上AppStore审核通过,下载来看看.突然发现一个选择图片时候选中的标识 ...

  6. ios 点餐系统

    这个程序的主要界面就是一个TabBarController.总共三个标签,第一个是所有的可点的菜,第二个是已点的菜,第三个是可以留言或者查看所有留言. 下面是第一个页面: 右上角的i按钮是添加新菜,每 ...

  7. 动画和图形:OpenGL ES

    在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...

  8. Android Studio 插件 GsonFormat :你还在烦恼 为 Json格式 生成 JavaBean实体类吗?

    在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...

  9. Re0:在 .NetCore中 EF的基本使用

    整理一下目前在用的EFCore 记得好像是因为懒得写sql,于是开始试着用EF 先根据数据库生成一个好东西,嗯 Scaffold-DbContext "Data Source=localho ...

  10. Re0:在.NetCore 中Dapper的基本用法

    整理一下目前在用的Dapper 与FrameWork不同,NetCore数据库配置需要从appsettings.json中获取 刚接触的时候被这块坑了,自己手动建了个app.config.然后你懂的( ...

随机推荐

  1. ASP.NET MVC HttpVerbs.Delete/Put Routes not firing

    原文地址: https://weblog.west-wind.com/posts/2015/Apr/09/ASPNET-MVC-HttpVerbsDeletePut-Routes-not-firing ...

  2. 由最小生成树(MST)到并查集(UF)

    背景 最小生成树(Minimum Spanning Tree)的算法中,克鲁斯卡尔算法(Kruskal's algorithm)是一种常用算法. 在克鲁斯卡尔算法中的一个关键问题是如何判断图中的两个点 ...

  3. SecureCRT远程连接Linux服务器及相关配置

    这里的连接采用的是SSH2协议,关于SSH2协议可百度 一.连接不上可能的原因 1)服务器防火墙iptables /etc/init.d/iptables stop 2)SSH服务有问题 3)客户端到 ...

  4. mybatis如何根据mapper接口生成其实现类

    SpringBoot集成mybatis mybatis的statement的解析与加载 mybatis如何根据mapper接口生成其实现类 mybatis的mapper返回map结果集 mybatis ...

  5. Html基本操作实例代码

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...

  6. VisualSVN Server 修改用户密码

    VisualSVN Server是非常方便好用的SVN服务器端软件,但有个问题,你在服务器端创建了用户名密码后,用户无法自己修改密码,据说VisualSVN的客户端可以修改用户密码,但客户端是收费软件 ...

  7. VS 2010快捷键

    1 注释选中的部分  Ctrl+K,C 2 取消注释的部分  Ctrl+K,U 3 设置断点            F9            取消此行的断点就再按一次F9 4 取消全部断点      ...

  8. 关于linux系统端口查看和占用的解决方案

    原文:http://www.2cto.com/os/201411/355959.html 一直以来,在处理linux服务器的过程中,经常会遇到一个问题,有时候kill掉进程之后,端口被占用,新的进程一 ...

  9. 转:在两个页面间翻转设置Animation动作的一些总结

    今天碰到两个页面之间翻转的动作设计问题,发现了一些问题,故做个总结,很多都写在注释部分: 1.首先,我们来手动创建两个view以及相应的viewController.是手动,不是用IB (1)刚开始只 ...

  10. 用命令行安装并启动Windows Phone 8 App

    一.安装并启动应用 "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Tools\XAP Deployment\XapDep ...