[poj 2342]简单树dp
题目链接:http://poj.org/problem?id=2342
dp[i][0/1]表示以i为根的子树,选或不选根,所能得到的最大rating和。
显然
dp[i][0]=∑max(dp[son][0],dp[son][1])
dp[i][1]=val[i]+∑dp[son][0]
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std; const int maxn=;
int v[maxn];
int p[maxn];
vector<int> G[maxn];
int dp[maxn][]; void dfs(int u)
{
dp[u][]=;
dp[u][]=v[u];
for (int i=;i<G[u].size();i++)
{
dfs(G[u][i]);
dp[u][]+=max(dp[G[u][i]][],dp[G[u][i]][]);
dp[u][]+=dp[G[u][i]][];
}
} int main()
{
int n;
while (scanf("%d",&n) && n)
{
memset(p,-,sizeof(p));
for (int i=;i<=n;i++) G[i].clear();
for (int i=;i<=n;i++) scanf("%d",&v[i]);
for (int i=;i<=n-;i++)
{
int u,fa;
scanf("%d%d",&u,&fa);
p[u]=fa;
G[fa].push_back(u);
}
int root;
for (int i=;i<=n;i++) if (p[i]==-) root=i;
dfs(root);
printf("%d\n",max(dp[root][],dp[root][]));
}
return ;
}
[poj 2342]简单树dp的更多相关文章
- Anniversary party POJ - 2342 (树形DP)
题目链接: POJ - 2342 题目大意:给你n个人,然后每个人的重要性,以及两个人之间的附属关系,当上属选择的时候,他的下属不能选择,只要是两个人不互相冲突即可.然后问你以最高领导为起始点的关系 ...
- POJ 2342 Label:树形dp
Anniversary party Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6955 Accepted: 4003 ...
- POJ 2342 (树形DP)
Anniversary party Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3863 Accepted: 2172 ...
- BZOJ 1864:[Zjoi2006]三色二叉树(树DP)
三色二叉树 问题描述 输入 仅有一行,不超过500000个字符,表示一个二叉树序列. 输出 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 样例输入 1122002010 ...
- POJ 2631 Roads in the North(求树的直径,两次遍历 or 树DP)
题目链接:http://poj.org/problem?id=2631 Description Building and maintaining roads among communities in ...
- poj 2342 hdu 1520【树形dp】
poj 2342 给出每个顶点的happy值,还有若干组两个顶点L,K关系,表示K是L的上司.求当K.L不同时出现时获得的happy值的最大和. 设dp[u][0]表示不选u结点时获得的最大值,dp[ ...
- POJ 2342 Anniversary party / HDU 1520 Anniversary party / URAL 1039 Anniversary party(树型动态规划)
POJ 2342 Anniversary party / HDU 1520 Anniversary party / URAL 1039 Anniversary party(树型动态规划) Descri ...
- DP Intro - poj 2342 Anniversary party
今天开始做老师给的专辑,打开DP专辑 A题 Rebuilding Roads 直接不会了,发现是树形DP,百度了下了该题,看了老半天看不懂,想死的冲动都有了~~~~ 最后百度了下,树形DP入门,找到了 ...
- 暑假集训 || 树DP
树上DP通常用到dfs https://www.cnblogs.com/mhpp/p/6628548.html POJ 2342 相邻两点不能同时被选 经典题 f[0][u]表示不选u的情况数,此时v ...
随机推荐
- python爬虫之有道在线翻译
今天初学了python这门课 老师简单的讲解了一下 python的安装环境,配置环境变量,当前主流Python使用的是3.x版本, 下午简单的讲解了python的起源,发展以及在各个方面的应用 然后晚 ...
- AIM Tech Round 5C. Rectangles 思维
C. Rectangles time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- 分享一个工作中遇得到的sql(按每天每人统计拖车次数与小修次数)
查询每人每天的数据 首先先建表 CREATE TABLE `user` ( `name` ) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CR ...
- Python自动化运维——IP地址处理模块
Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:IPy 功能:辅助我们高效的完成IP的规划工作 安装: wget https://pypi.python.o ...
- 13 ThreadLocal
ThreadLocal 在多线程环境下,每个线程都有自己的数据.一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁. 1. 使用函数 ...
- Android stadio bug
好生气啊,android stadio 有bug.自己的代码,一直没有生效,原来是stadio 的问题.只是因为我打开了增强模式,后来,buildToolVersion 改了之后,android st ...
- ORB-SLAM(五)KeyFrame类
KeyFrame类利用Frame类来构造.对于什么样的Frame可以认为是关键帧以及何时需要加入关键帧,是实现在tracking模块中的. 由于KeyFrame中一部分数据会被多个线程访问修改,因此需 ...
- 初识Continuation
本文来自网易云社区 作者:陆艺 上学时看了SICP之后就对scheme这个看上去比较古怪的语言产生了兴趣. 虽然书里并没有涉及scheme太多语法以及语言上特性的一些东西, 作为一个喜欢折腾的人, 手 ...
- MySQL源码中的String
适用于离开作用域就销毁的字符串.
- Struts2(二.用户登录模块)
1.编写Javabean /src/myuser/User.java 在strut1中,Javabean需要继承于struts1 api中的ActionForm类.struts2没有此要求 strut ...