poj3342
来源:互联网 发布:免费申请网站com域名 编辑:程序博客网 时间:2024/04/28 04:01
树状动态规划
本题分两步做,第一步求出最大人数,第二步判断是否是唯一解。第一步主要是状态方程的判断。首先用图记录输入的数据并转化,还要用二维数组记录两者的关系,最后调用状态函数进行递归转化。第二步进行判断是否唯一解。出现不同的解的情况是,先进行遍历所有节点,如果出现dp[i][0]和dp[i][1]相等的情况,对于它的子节点,如果出现来与不来人数都一样的情况,就说明无论该子节点的父节点是否受该子节点的父节点的父节点的影响,总能出现由于该子节点的来与不来而出现的情况。
#include <iostream>#include <string>#include <map>#include <memory.h>#include <fstream>using namespace std;int n,dp[210][2],tree[210][210];string str1,str2;void fun(int t){ dp[t][0] = 0;dp[t][1] = 1; for(int i = 1;i <= n;i ++) if(tree[t][i]) { fun(i); dp[t][0] += max(dp[i][0],dp[i][1]); dp[t][1] += dp[i][0]; }}int main(){ //ifstream cin("in.txt"); while(cin >> n && n ) { memset(tree,0,sizeof(tree)); memset(dp,0,sizeof(dp)); map<string,int> cat; int ct = 1; cin >> str1; cat[str1] = ct ++; for(int i = 1;i < n;i ++) { cin >> str1 >> str2; if(cat[str1] == 0) cat[str1] = ct ++; if(cat[str2] == 0) cat[str2] = ct ++; tree[cat[str2]][cat[str1]] = 1; } fun(1); cout << max(dp[1][0],dp[1][1]) << ' '; int i,j; if(n == 2) {cout << "No" << endl; continue;} for(i = 1;i <= n;i ++) if(dp[i][0] == dp[i][1]) { for(j = 1;j <= n;j ++) { if(tree[i][j] && dp[j][0] == dp[j][1]) break; } if(j <= n) break; } if(i <= n) cout << "No" << endl; else cout << "Yes" << endl; } return 0;}
0 0
- poj3342
- poj3342
- poj3342树形dp
- poj3342解题报告
- Party at Hali-Bula POJ3342
- poj3342 Party at Hali-Bula
- poj3342 poj2342 树形dp入门
- poj3342 Party at Hali-Bula
- poj3342——Party at Hali-Bula
- POJ3342 HDU2412 Party at Hali-Bula
- POJ3342 Party at Hali-Bula 树形DP
- POJ3342——Party at Hali-Bula
- POJ3342 Party at Hali-Bula(树形DP)
- 【树形动态规划】poj3342 Party at Hali-Bula
- poj2342/poj3342——基础的树形DP
- HDU2412 && POJ3342:Party at Hali-Bula(树形DP)
- HDU2412 & POJ3342 Party at Hali-Bula_树形DP
- poj3342树形dp+深度搜索并确定唯一性
- 经纬财富:十堰炒白银有哪些技巧
- IBM的InfoSphere Streams的编制指南技术精通测试V1
- Java后台向前台传值乱码问题之tomcat修改配置
- 最近发现北京交通大学的镜像站比我北京理工的资源要多
- Java SE 学习---格式化输出
- poj3342
- Protocol Buffer技术详解(语言规范)
- Oracle如何调整SGA的大小
- HDU 4869 Turn the pokers 组合数学
- 代码的编译连接与执行过程
- Protocol Buffer技术详解(C++实例)
- Flex的波德的新技术
- 修改eclipse中的默认maven2资源仓库保存地址(很有用的)
- IOS开发之仿照LinkedIn登录界面效果