hdu_Anniversary party_(树形DP入门题)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1520
题意:有N个人,N-1个人有自己的上司,每个人有一个快乐值,如果这个人参加了聚会,那么这个人的直接上司将不嫩参加,问最大的快乐值为多少
题解:入门的树形DP题,dp[i][0]表示第i个人不去,dp[i][1]表示第i个人去。
1 #include<cstdio> 2 #define FFC(i,a,b) for(int i=a;i<=b;i++) 3 #define max(a,b) ((a)>(b)?(a):(b)) 4 const int maxn=6010; 5 int n,c[maxn],v[maxn],g[maxn],nxt[maxn],ed,xx,yy,ik,f[maxn],root,dp[maxn][2]; 6 void adg(int x,int y){v[++ed]=y,nxt[ed]=g[x],g[x]=ed;} 7 void fuck(int now){ 8 dp[now][1]=c[now]; 9 for(int i=g[now];i;i=nxt[i]){ 10 fuck(v[i]); 11 dp[now][0]+=max(dp[v[i]][1],dp[v[i]][0]); 12 dp[now][1]+=dp[v[i]][0]; 13 } 14 } 15 int main(){ 16 while(~scanf("%d",&n)){ 17 FFC(i,1,n)scanf("%d",&c[i]); 18 for(ik=ed=0,root=1;ik<=n;ik++)g[ik]=0,f[ik]=ik; 19 while(scanf("%d%d",&xx,&yy),xx+yy)adg(yy,xx),f[xx]=yy; 20 FFC(i,1,n)dp[i][0]=dp[i][1]=0; 21 while(f[root]!=root)root=f[root]; 22 fuck(root); 23 printf("%d\n",max(dp[root][1],dp[root][0])); 24 } 25 return 0; 26 }
View Code
转载于:https://www.cnblogs.com/bin-gege/p/5696154.html
hdu_Anniversary party_(树形DP入门题)相关推荐
- POJ 1155 TELE 背包型树形DP 经典题
由电视台,中转站,和用户的电视组成的体系刚好是一棵树 n个节点,编号分别为1~n,1是电视台中心,2~n-m是中转站,n-m+1~n是用户,1为root 现在节点1准备转播一场比赛,已知从一个节点传送 ...
- 数位dp入门题 洛谷P2657 [SCOI2009] windy 数
题干 传送门 windy 定义了一种 windy 数. 题目描述 不含前导零且相邻两个数字之差至少为 2的正整数被称为 windy 数.windy 想知道,在 a 和 b 之间,包括 a 和 b ,总 ...
- POJ - 2342 Anniversary party(树形dp入门)
题目链接:点击查看 题目大意:每个人都有一个快乐值,给定一个树状的从属关系,仅当上司和下属都不在的时候这个个人的快乐值才能表现出来,问怎么样才能让整体的快乐值达到最大 题目分析:做线段树做吐了,来换换 ...
- 【树形DP】树形DP入门详解+例题剖析
树形DP 树形DP准确的说是一种DP的思想,将DP建立在树状结构的基础上.整体的思路大致就是用树形的结构存储数据. 要学树形DP之前肯定是要先学会树和图的呀,至少先学会链式前向星,不会的话可以看一下我 ...
- 树形DP入门题目推荐以及解析
关于树形DP几道入门题目 今天恶补树形DP,感觉海星. 其实挺简单的. 介绍几道例题,我会的. 1.洛谷P1352 没有上司的舞会 我的一篇题解 我们可以考虑每一个节点都是有两种情况. 一个是被邀请: ...
- 洛谷P1352 没有上司的舞会(树形DP水题)
题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...
- 树形dp瞎讲+树形dp基础题题解
---恢复内容开始--- 没错 咕了这么久(没有青青姐久 我又开始写博客了( ´▽`) 想了很久些什么(才没有想过呢 虽然被鄙视基础不好但还是走上了树形dp的不归路 那么 就来写写树形dp吧(dtx ...
- HDU 2196 Computer 树形DP经典题
链接:http://acm.hdu.edu.cn/showproblem.php? pid=2196 题意:每一个电脑都用线连接到了还有一台电脑,连接用的线有一定的长度,最后把全部电脑连成了一棵树,问 ...
- 树形DP入门(二叉苹果树+没有上司的舞会)
树形dp学习笔记 - _Lancy - 博客园二叉苹果树 二叉苹果树 没有上司的舞会 二叉苹果树的处理可以说是非常模板了,正常容易联想到倒过来的数字三角形 for(int i=n;i>=1;i- ...
最新文章
- java.net.SocketException: 断开的管道 (Write failed) 错误,数据库隔一段时间就断开的问题...
- python_Day5_web开发(下)
- tyvj1102 单词的划分
- 启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑
- jzoj6191-[NOI2019模拟2019.5.31]Exchange【线段树】
- 慕课乐学python单元测试答案_中国大学慕课第三章单元测试答案_乐学软件工程免费答案...
- SMS部署操作系统后记
- 解决浏览器拦截弹出窗口问题
- Flash与数学: 旋轮线(2)
- 他在计算机上工作英语翻译,英语翻译1.尽管他在手术中割破了手,但他仍在继续工作.(in spite of)2.计算机在现代生活中起着重要的作用.(...
- echarts 引用地图的json
- c语言编程发展史详细介绍,一张图让你了解编程语言发展史
- 利用python进行数据分析—9.数据规整:连接、联合与重塑
- uniapp本地开发小程序代码超过2M,不能预览和真机调试解决办法
- 数据分析-数据平滑处理
- MPI大漩涡(单纯的floyd)
- 前端开发工具WebStorm下载
- CentOS通过Samba访问NAS共享目录
- 一个小白对接电子面单的哪些坑?
- [编译原理]-----第三章 词法分析
热门文章
- @RequestParam和@RequestBody的区别 (结合 Get/Post )
- C语言再学习 -- Linux 中常用基本命令
- linux命令修改管理员时间,Linux管理员必须知道的sudo命令
- 【译】IPFS — The Permanent, Distributed Web Continues…..
- 品茗论道说广播(Broadcast内部机制讲解)
- c语言作业指导1,C语言程序设计实验与习题指导
- mysql chartset utf 8_[数据库]MySQL chartset_星空网
- kettle读取json文件并读取数据_Labview打开Excel文件读取数据
- java里顺序表怎么判断是否满_2、顺序表的实现(java代码)
- Qt 清空QPixMap