dp[i][0..1]表示i不来/来参加的最大总高兴值。

则dp[i][1]+=dp[v][0](v是i的所有直接下属)

dp[i][0]+=max(dp[v][0],dp[v][1])

没有告诉你树根,dp的方向我第一次写的是用队列维护叶子节点,每次计算完,它的父亲的孩子数量--,如果减到0,就变成叶子加入队列。直到队列空。后来看别人写的两种是读入的时候维护root,还有种方法是记录父亲,然后递推祖先。

#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 6050
using namespace std;
int n,u,v,a[N],rt;
int dp[N][2],head[N],cnt;
struct edge{int to,next;
}e[N];
int DP(int u,int s){int &ans=dp[u][s];if(ans)return ans;if(s)ans=a[u];for(int i=head[u];i;i=e[i].next){int v=e[i].to;if(s)ans+=DP(v,0);else ans+=max(DP(v,1),DP(v,0));}return ans;
}
int main(){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);while(scanf("%d%d",&v,&u),u){e[++cnt]=(edge){v,head[u]};head[u]=cnt;if(v==rt||!rt)rt=u;}if(!rt)rt=1;//如果只有一个节点的情况printf("%d",max(DP(rt,1),DP(rt,0)));
}

【POJ 2342】Anniversary party(入门树形dp)相关推荐

  1. HDU 1520 Anniversary party(树形dp)

    HDU 1520 Anniversary party(树形dp) 树形dp第一题!!! 题意很清晰,思路也很明确.很容易找到根节点,即最大的boss,通过根节点向下dp. 状态转移方程: int to ...

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

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

  3. POJ 1155 TELE【树形DP】

    POJ 1155 TELE http://poj.org/problem?id=1155 大意:某电台要广播一场比赛,该电台网络是由N个网点组成的一棵树,其中M个点为客户端, 其余点为转发站.客户端i ...

  4. 【HDU - 1520】Anniversary party (树形dp)

    题干: There is going to be a party to celebrate the 80-th Anniversary of the Ural State University. Th ...

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

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

  6. POJ - 3342 Party at Hali-Bula(树形dp)

    题目链接:点击查看 题目大意:n个人参加聚会,每个人都不想和老板一起参加,问最多可以有多少个人参加,并且判断方案唯一性 题目分析:这个类型的题目这已经是第三个了,状态转移方程都一模一样,不过这个题有点 ...

  7. HDU-1520 Anniversary party(树形DP)

    题目大意:一棵树,每个节点都带权.从中取出一些节点,并且子节点不能与父节点同时取,求能取得的最大值. 题目分析:定义状态dp(u,0/1)表示u点不取/取.则状态转移方程为: dp(u,1)=sum( ...

  8. POJ 2342 | HDU 1520 Anniversary party 树形DP(入门题)

    传送门:POJ 2342 题目大意: 有若干人参加一个聚会,如果两个人之间有直接的上下属关系,则只能去一个.每个人都有个高兴值,问高兴值之和最大是多少? 思路: 之前一直觉得树形DP比较难,现在发现树 ...

  9. poj 2342 树形DP

    树形DP入门题目. 树形DP说白了就是在搜索的时候动态规划. 只要你懂的深搜+动态规划,就能理解这个基础题了. 先直接搜索到最底层,然后一层一层动态规划,可以说有点像数塔. dp[i][1],dp[i ...

  10. |POJ 2342|动态规划|Anniversary party

    http://poj.org/problem?id=2342 树形DP基础题,具体看注释. 设状态f[i][0]为i不来,f[i][1]为i要来 f[r][1] +=  f[i][0];   //r要 ...

最新文章

  1. tensorboardX笔记:理解graph
  2. javax.websocket.DeploymentException: The path [webScoketServiceBaidu/{appID}] is not valid.
  3. C# / VB.NET合并PDF指定页
  4. 如何在 Apple Silicon (M1) 上开发 Teams App
  5. Spring框架 JdbcTemplate类 @Junit单元测试,可以让方法独立执行 如:@Test
  6. 百度贴吧自动发帖_引流网赚之百度贴吧引流窍门:实操引流教程百度贴吧零成本自动顶帖+10分钟学会豆瓣顶帖引流...
  7. vb串口 任意波特率_学习串口参数详解:波特率,数据位,停止位,奇偶校验位...
  8. JavaScript学习(六十八)—表单校验案例
  9. PC远程调试设备(转)
  10. Android Studio运行程序出现Session ‘app’: Error Launching activity 解决办法
  11. 飞利浦 f718 java 微信_第一次使用飞利浦F718手机感觉怎么样及优缺点
  12. 记录一次使用Aliyun OSS 存图片
  13. 国外浏览器无法访问apple ID页面,显示502 Bad Gateway,解决方法
  14. PHP手机深色模式,哪些手机深色模式比较好?六大主流品牌手机深色模式对比介绍...
  15. 【随笔】诺贝尔奖提名探索
  16. html5吹气球游戏,吹气球的游戏作文
  17. Knowledge Tracing: A Survey阅读笔记
  18. 小米 红米4(标准版)线刷兼救砖_解账户锁_纯净刷机包_教程
  19. 前端适配不同型号手机分辨率,100%还原UI设计稿的方案实践
  20. TPM 2.0规范系列解读——Part 1体系结构第(四)读:TPM架构

热门文章

  1. Windows IOCP模型与Linux EPOLL模块之比较-
  2. 前端调用接口报错看不到报错响应时 console.dir
  3. spring-beanFactory二
  4. ARC075 F.Mirrored
  5. 试试看读一下Zepto源码
  6. Could not find artifact com.sun:tools:jar:1.5.0 问题解决
  7. Oracle 游标Cursor 的基本用法
  8. 用递归将嵌套的JSON对象遍历出来,转为二维数组 或一维数组
  9. html基本进阶知识【转】
  10. asp.net支持多文件上传的服务器控件