题目连接: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入门题)相关推荐

  1. POJ 1155 TELE 背包型树形DP 经典题

    由电视台,中转站,和用户的电视组成的体系刚好是一棵树 n个节点,编号分别为1~n,1是电视台中心,2~n-m是中转站,n-m+1~n是用户,1为root 现在节点1准备转播一场比赛,已知从一个节点传送 ...

  2. 数位dp入门题 洛谷P2657 [SCOI2009] windy 数

    题干 传送门 windy 定义了一种 windy 数. 题目描述 不含前导零且相邻两个数字之差至少为 2的正整数被称为 windy 数.windy 想知道,在 a 和 b 之间,包括 a 和 b ,总 ...

  3. POJ - 2342 Anniversary party(树形dp入门)

    题目链接:点击查看 题目大意:每个人都有一个快乐值,给定一个树状的从属关系,仅当上司和下属都不在的时候这个个人的快乐值才能表现出来,问怎么样才能让整体的快乐值达到最大 题目分析:做线段树做吐了,来换换 ...

  4. 【树形DP】树形DP入门详解+例题剖析

    树形DP 树形DP准确的说是一种DP的思想,将DP建立在树状结构的基础上.整体的思路大致就是用树形的结构存储数据. 要学树形DP之前肯定是要先学会树和图的呀,至少先学会链式前向星,不会的话可以看一下我 ...

  5. 树形DP入门题目推荐以及解析

    关于树形DP几道入门题目 今天恶补树形DP,感觉海星. 其实挺简单的. 介绍几道例题,我会的. 1.洛谷P1352 没有上司的舞会 我的一篇题解 我们可以考虑每一个节点都是有两种情况. 一个是被邀请: ...

  6. 洛谷P1352 没有上司的舞会(树形DP水题)

    题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...

  7. 树形dp瞎讲+树形dp基础题题解

    ---恢复内容开始--- 没错 咕了这么久(没有青青姐久 我又开始写博客了( ´▽`) 想了很久些什么(才没有想过呢 虽然被鄙视基础不好但还是走上了树形dp的不归路 那么 就来写写树形dp吧(dtx ...

  8. HDU 2196 Computer 树形DP经典题

    链接:http://acm.hdu.edu.cn/showproblem.php? pid=2196 题意:每一个电脑都用线连接到了还有一台电脑,连接用的线有一定的长度,最后把全部电脑连成了一棵树,问 ...

  9. 树形DP入门(二叉苹果树+没有上司的舞会)

    树形dp学习笔记 - _Lancy - 博客园二叉苹果树 二叉苹果树 没有上司的舞会 二叉苹果树的处理可以说是非常模板了,正常容易联想到倒过来的数字三角形 for(int i=n;i>=1;i- ...

最新文章

  1. java.net.SocketException: 断开的管道 (Write failed) 错误,数据库隔一段时间就断开的问题...
  2. python_Day5_web开发(下)
  3. tyvj1102 单词的划分
  4. 启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑
  5. jzoj6191-[NOI2019模拟2019.5.31]Exchange【线段树】
  6. 慕课乐学python单元测试答案_中国大学慕课第三章单元测试答案_乐学软件工程免费答案...
  7. SMS部署操作系统后记
  8. 解决浏览器拦截弹出窗口问题
  9. Flash与数学: 旋轮线(2)
  10. 他在计算机上工作英语翻译,英语翻译1.尽管他在手术中割破了手,但他仍在继续工作.(in spite of)2.计算机在现代生活中起着重要的作用.(...
  11. echarts 引用地图的json
  12. c语言编程发展史详细介绍,一张图让你了解编程语言发展史
  13. 利用python进行数据分析—9.数据规整:连接、联合与重塑
  14. uniapp本地开发小程序代码超过2M,不能预览和真机调试解决办法
  15. 数据分析-数据平滑处理
  16. MPI大漩涡(单纯的floyd)
  17. 前端开发工具WebStorm下载
  18. CentOS通过Samba访问NAS共享目录
  19. 一个小白对接电子面单的哪些坑?
  20. [编译原理]-----第三章 词法分析

热门文章

  1. @RequestParam和@RequestBody的区别 (结合 Get/Post )
  2. C语言再学习 -- Linux 中常用基本命令
  3. linux命令修改管理员时间,Linux管理员必须知道的sudo命令
  4. 【译】IPFS — The Permanent, Distributed Web Continues…..
  5. 品茗论道说广播(Broadcast内部机制讲解)
  6. c语言作业指导1,C语言程序设计实验与习题指导
  7. mysql chartset utf 8_[数据库]MySQL chartset_星空网
  8. kettle读取json文件并读取数据_Labview打开Excel文件读取数据
  9. java里顺序表怎么判断是否满_2、顺序表的实现(java代码)
  10. Qt 清空QPixMap