POJ_3342_Party_at_Hali-Bula
#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的更多相关文章
- poj 3680 Intervals
给定N个带权的开区间,第i个区间覆盖区间(ai,bi),权值为wi.现在要求挑出一些区间使得总权值最大,并且满足实轴上任意一个点被覆盖不超过K次. 1<=K<=N<=200.1< ...
- jQuery 遍历 - parent() 方法
ylbtech-jQuery-sizzle:jQuery 遍历 - parent() 方法 parent() 获得当前匹配元素集合中每个元素的父元素,使用选择器进行筛选是可选的. 1.A,jQuer ...
- PHP die与exit的区别
最近听见有人说die和exit区别,bula~bula.决心一探究竟. 翻了翻PHP 5.6的源码(源码的位置为zend目录下zend_language_scanner.l大约是1014~1020行) ...
- 二、jenkins配置email(以腾讯企业qq为例)
废话不多说,直接上干货: 主要针对两个部分进行介绍: 1.jenkins内置的邮件功能: 2.Editable Email Notification插件的邮件功能: 低版本的jenkins有很多插件都 ...
- CTAssetsPickerController 选中图片不显示对号的问题解决
转载自:http://blog.csdn.net/qq_27304667/article/details/53218547 早上AppStore审核通过,下载来看看.突然发现一个选择图片时候选中的标识 ...
- ios 点餐系统
这个程序的主要界面就是一个TabBarController.总共三个标签,第一个是所有的可点的菜,第二个是已点的菜,第三个是可以留言或者查看所有留言. 下面是第一个页面: 右上角的i按钮是添加新菜,每 ...
- 动画和图形:OpenGL ES
在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...
- Android Studio 插件 GsonFormat :你还在烦恼 为 Json格式 生成 JavaBean实体类吗?
在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...
- Re0:在 .NetCore中 EF的基本使用
整理一下目前在用的EFCore 记得好像是因为懒得写sql,于是开始试着用EF 先根据数据库生成一个好东西,嗯 Scaffold-DbContext "Data Source=localho ...
- Re0:在.NetCore 中Dapper的基本用法
整理一下目前在用的Dapper 与FrameWork不同,NetCore数据库配置需要从appsettings.json中获取 刚接触的时候被这块坑了,自己手动建了个app.config.然后你懂的( ...
随机推荐
- Codeforces Round #222 (Div. 1) A. Maze dfs
A. Maze 题目连接: http://codeforces.com/contest/377/problem/A Description Pavel loves grid mazes. A grid ...
- [分享]2013:Linux的黄金之年-十大杰出成就
2013年已经过去.这一年见证了许多里程碑事件,使得2013年可以称得上是一个Linux的黄金之年.其中一些成果在FOSS和Linux世界更可以称得上是举世瞩目的成就. 1.Android的上升趋势 ...
- BZOJ 1269: [AHOI2006]文本编辑器editor (splay tree)
1269: [AHOI2006]文本编辑器editor Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1213 Solved: 454[Submit ...
- DataTable添加行的方法
方法一: DataTable tblDatas = new DataTable("Datas");DataColumn dc = null;dc = tblDatas.Colum ...
- easyui中combobox 验证输入的值必须为选项框中的数据
当作为提示框的方式时,combobox必须设置为允许用户输入的模式,但是当用户输入后未选择正确的数据就直接按tab或点击鼠标离开控件会导致用户输入无效的值并且通过验证,为了避免这种情况的发生我们需要对 ...
- C#中,什么时候用yield return
yield关键字用于遍历循环中,yield return用于返回IEnumerable<T>,yield break用于终止循环遍历. 有这样的一个int类型的集合: static Lis ...
- 使用jquery加载部分视图01-使用$.get()
使用Html.RenderParital或Html.RenderAction可以在主视图中加载部分视图. 两种方法是有区别的,在"RenderPartial和RenderAction区别&q ...
- ExtJS创建选项卡
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Android图片加载框架最全解析(五),Glide强大的图片变换功能
大家好,又到了学习Glide的时间了.前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了.今天是这个系列的第五篇文章,在前面四篇文章的当中,我们已经学习了 ...
- sql递归查询子级
WITH T(emp_no, name, dept_no, the_level, path,path1,manager_id) AS( SELECT emp_no, name, dept_no ,1 ...