HDU 2412 Party at Hali-Bula
来源:互联网 发布:php 考试开源系统源码 编辑:程序博客网 时间:2024/05/21 06:59
与HDU 1250类似,不同的是多了一个条件,即判定最大值的解是否唯一,主要说说判定唯一性的问题就行了。
HDU 1250题解:http://blog.csdn.net/wangjie_wang/article/details/9169799
若取当前点,则这时取最大值是否唯一就变成了判定不取儿子节点时是否有某个儿子节点的最大值是否唯一了。
若不取当前点,则分为三种情况:
1:最大值在不取儿子节点时获得,则这时判定就变成了此时儿子节点最大值是否唯一。
2:最大值在取儿子节点时获得,则这时判定也变成了此时儿子节点最大值是否唯一。
3:取或者不取儿子节点值相等时,最大值解必然不唯一。
#include <cstdio>#include <cstring>#include <string>#include <iostream>#include <queue>#include <algorithm>#include <map>#include <vector>#include <stack>using namespace std;#define ll long long#define int64 __int64#define M 1000005#define N 10005#define inf 1<<30#define mod 1000000007struct node{int e;int next;}tree[N];struct data{int yes , no;int yfg , nfg;//分别为取此点的解是否为唯一和不取此点的解是否唯一}tp[N];int n , tot;int head[N];void Addedge(int s , int e){tree[tot].e = e;tree[tot].next = head[s];head[s] = tot++;}void Dfs(int s){tp[s].yes = 1;tp[s].no = 0;tp[s].nfg = tp[s].yfg = 0;int i;for (i = head[s] ; i != -1 ; i = tree[i].next){int e = tree[i].e;Dfs(e);tp[s].yes += tp[e].no;tp[s].no += max(tp[e].no,tp[e].yes);if (!tp[s].yfg && tp[e].nfg)tp[s].yfg =1; //三种情况if (tp[e].no > tp[e].yes){if (!tp[s].nfg && tp[e].nfg)tp[s].nfg = 1;}else if (tp[e].no < tp[e].yes){if (!tp[s].nfg && tp[e].yfg)tp[s].nfg = 1;}else{tp[s].nfg = 1;}}}int main(){int i , cnt;while (scanf("%d",&n) , n){string name , boss;map<string , int> sq;memset(head , -1 , sizeof head);tot = cnt = 1;cin >> boss;sq[boss] = cnt++;for (i = 1 ; i < n ; i++){cin >> name >> boss;if (sq[name] <= 0)sq[name] = cnt++;if (sq[boss] <= 0)sq[boss] = cnt++;Addedge(sq[boss] , sq[name]);}Dfs(1);if (tp[1].yes > tp[1].no){printf("%d ",tp[1].yes);if (!tp[1].yfg)printf("Yes\n");elseprintf("No\n");}else if (tp[1].yes < tp[1].no){printf("%d ",tp[1].no);if (!tp[1].nfg)printf("Yes\n");elseprintf("No\n");}else printf("%d No\n",tp[1].no);}return 0;}
- HDU 2412 Party at Hali-Bula
- HDU 2412 Party at Hali-Bula
- Hdu 2412 Party at Hali-Bula
- hdu-2412-Party at Hali-Bula
- HDU 2412 Party at Hali-Bula
- hdu 2412 Party at Hali-Bula
- HDU 2412 Party at Hali-Bula
- HDU 2412 Party at Hali-Bula (树形DP,map)
- HDU 2412 Party at Hali-Bula (树形DP + hash)
- *hdu 2412 Party at Hali-Bula
- 树形DP(1)-Hdu 2412 Party at Hali-Bula
- hdu 2412 Party at Hali-Bula 树形dp
- hdu 2412 Party at Hali-Bula(树形DP)
- hdu 2412 Party at Hali-Bula(树形DP)
- 【树形DP】 HDU 2412 Party at Hali-Bula
- hdu - 2412 - Party at Hali-Bula(树形dp)
- 【树形dp】hdu 2412 Party at Hali-Bula
- HDU 2412 Party at Hali-Bula 树形DP
- Asp.Net 实现简单的单点登录
- 嵌入式Linux文件系统详细介绍
- 关于系统接口的笔记
- 关于HTML中的滚动条/去掉滚动条
- myeclipse 8.5最新注册码
- HDU 2412 Party at Hali-Bula
- 网站优化一:apache开启gzip压缩配置详解
- 用iptables抗cc的方法
- timestamp
- select new com.clsss 报 could not instantiate class from tuple
- 基于Andoird 4.2.2的同步框架源代码学习——同步发起端
- table 边框问题
- [linux]linux内核编译过程的最终总结版
- Linux2.6 内核的 Initrd 机制解析