1220 - Party at Hali-Bula(Hali-Bula 的晚会)
树形DP 。 因为不能同时选择一个人和他的直属上司 , 所以需要维护两个值d[u][0]表示不选该节点,d[u][1]表示选择该节点 。 当然,题目还有一个要求,那就是判断解的唯一性, 所以再添加一个数组维护唯一性。 我们不妨分别分析 : 1.d[u][1]的计算 , d[u][1] = sum{d[v][0]} + 1; v是u的子节点,因为要依赖所有子节点的解,所以当且仅当所有f[v][0]==1 时,f[u][1] = 1; 2.d[u][0]的计算, 因为没有选u , 所以每个子节点可以选可以不选, 所以d[u][0] = sum{ max(d[v][0],d[v][1]) } 如果d[v][0] == d[v][1] 那么解不唯一, 其次,如果max取到的值,也就是最终解的一部分,如果f == 0 ,那么方案也不唯一 。
细节参见代码:
#include<bits/stdc++.h>
using namespace std;
int n,d[205][5],f[205][5];
map<string,int> p;
char s[105],boss[105];
vector<int> sons[205];
int dp(int u,int id) {if(d[u][id]!=-1) return d[u][id];int k= sons[u].size();if(k == 0) { //初始化边界if(id == 0) { f[u][0] = 1; return d[u][id] = 0; }else { f[u][1] = 1; return d[u][id] = 1; }}if(id == 1) {d[u][1] = 1; //***bool ok = true;for(int i=0;i<k;i++) {int v = sons[u][i];d[u][1] += dp(v,0);if(f[v][0]!=1) ok = false;}if(ok) f[u][1] = 1;else f[u][1] = 0;return d[u][1];}else {d[u][0] = 0;bool ok = true;for(int i=0;i<k;i++) {int v = sons[u][i];if(dp(v,0) == dp(v,1)) { ok = false; d[u][0] += d[v][1]; }else if(d[v][0]>d[v][1]) { if(f[v][0]==0) ok = false; d[u][0] += d[v][0]; }else { if(f[v][1]==0) ok = false; d[u][0] += d[v][1]; }}if(ok) f[u][0] = 1;else f[u][0] = 0;return d[u][0];}
}
int main() {while(~scanf("%d",&n)&&n) {p.clear();memset(d,-1,sizeof(d));scanf("%s",s);p[s] = 0;int cnt = 0;for(int i=1;i<n;i++) {scanf("%s%s",s,boss);if(!p.count(s)) p[s] = ++cnt;if(!p.count(boss)) p[boss] = ++cnt;sons[p[boss]].push_back(p[s]);}int ans ;bool ok ;if(dp(0,0) > dp(0,1)) { ans = d[0][0]; ok = f[0][0]; }else if(d[0][0] == d[0][1]) { ans = d[0][0]; ok = false; }else { ans = d[0][1]; ok = f[0][1]; }printf("%d ",ans);if(ok) printf("Yes\n");else printf("No\n");for(int i=0;i<n;i++) sons[i].clear();}return 0;
}
1220 - Party at Hali-Bula(Hali-Bula 的晚会)相关推荐
- 【学时总结】◆学时·VIII◆ 树形DP
◆学时·VIII◆ 树形DP DP像猴子一样爬上了树--QwQ ◇ 算法概述 基于树的模型,由于树上没有环,满足DP的无后效性,可以充分发挥其强大统计以及计算答案的能力. 一般来说树形DP的状态定义有 ...
- Hali硬件安全工具-串口通讯RS232/485/422/CAN抓包
1.场景需求 我发现我的CSDN的优点之一就是,每篇文章都有讲清楚起因,平白无故的技术学习是没有根的,没有落地的场景,没有技术的应用,技术本身就是昙花一现. 这次的分享,是Hali硬件安全工具的第一次 ...
- Uva 1220,Hali-Bula 的晚会
题目链接:https://uva.onlinejudge.org/external/12/1220.pdf 题意: 公司n个人,形成一个数状结构,选出最大独立集,并且看是否是唯一解. 分析: d(i) ...
- 51NOD 1220 约数之和(杜教筛)
1220 约数之和 推式子 ∑i=1n∑j=1nd(i,j)=∑i=1n∑j=1n∑x∣i∑y∣j(gcd(x,y)=1)xjy=∑d=1ndμ(d)∑i=1nd∑x∣iix∑j=1nd∑y∣jj=∑ ...
- 信息学奥赛一本通 1220:单词接龙 | 1913:【00NOIP普及组】单词接龙 | OpenJudge NOI 2.5 8783 | 洛谷 P1019 [NOIP2000 提高组] 单词接龙
[题目链接] ybt 1220:单词接龙 ybt 1913:[00NOIP普及组]单词接龙 OpenJudge NOI 2.5 8783:单词接龙 洛谷 P1019 [NOIP2000 提高组] 单词 ...
- 信息学奥赛一本通(1220:单词接龙)
1220:单词接龙 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 5368 通过数: 3159 [题目描述] 单词接龙是一个与我们经常玩的成语接龙相类似的 ...
- CodeVS 1220 数字三角形
题目大意(经典的动态规划题型) http://codevs.cn/problem/1220/ #include <iostream>using namespace std; int n; ...
- HDU 1220 正方体问题
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1220 解法一: /* 题解:因为公共点的数目只可能有:0,1,2,4. 很明显我们用总的对数减掉有四个 ...
- 肾上腺髓质素 (12-20)|186027-43-0|KWNKWALSR-NH2
肾上腺髓质素原片段12-20在大鼠和猫体内具有血管抑制活性.肾上腺髓质素原(12-20)(PAMP 12-20)的效力大约比全序列肽低3倍,但血管抑制剂对该片段和全序列肽的反应持续时间相似. 编号: ...
- ROHM | 开发出以1220尺寸达到1W业界超高额定功率的分流电阻器“LTR10L”
有助于各种应用产品的小型化! 全球知名半导体制造商ROHM(总部位于日本京都市)面向车载设备.工业设备和消费电子设备等广泛的应用领域,开发出"LTR系列"的长边电极型分流电阻器&q ...
最新文章
- 使用leangoo做多团队敏捷开发项目管理
- 程序员在囧途之做私活小记
- [19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)...
- C# 调用Excel 出现服务器出现意外情况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)
- matlab 矩阵数据生成.csv表格
- 防止html标签转义
- 【ArcGIS微课1000例】0008:ArcGIS中如何设置相对路径?(解决图层前红色的感叹号)
- 安装jdk步骤rpm_jenkins rpm包方式安装
- 什么是中台业务架构?
- linux开放mysql远程连接_Linux开启MySql远程连接
- Java中类加载器获取的两种方式
- Cerebro 插件之电影磁力搜索神器
- 关于重构中的“函数尽量小”的负作用
- DPDK示例l3fwd性能测试
- maven安装配置之后mvn命令仍然无效的解决办法
- cad插件_CAD插件自动标注安装教程
- 程 | 深度学习 + OpenCV,Python 实现实时视频目标检测 机器之心 09-21
- 无线网为何显示无法上网络连接服务器,wlan显示已连接不可上网怎么办_wlan显示已连接但无法访问互联网怎么解决...
- Android视频编辑器(二)预览、录制视频加上水印和美白磨皮效果
- CASS9.2启动提示连接数据库失败的解决方案
热门文章
- util是什么意思计算机英语,utill是什么意思
- CSS冷门属性 mix-blend-mode 制作文字镂空效果
- 结合百度云平台和微信公众平台开发(三)
- New York City Taxi Trip Duration纽约出租车大数据探索(报告版
- QQ录屏的文件保存的位置
- notepadpython插件_用NotePad++写python及自动补全
- 社交媒体的阴暗面:是Facebook让你抑郁的吗?
- 英文求职信计算机网络,计算机网络技术英文求职信范文 .doc
- soapui工具_Java 开发者不容错过的 12 种高效工具
- compareto java date_java中compareTo比较两个日期大小