http://poj.org/problem?id=2342 (题目链接)

题意

  没有上司的舞会。。。

Solution

  树形dp入门题。

  dp[i][1]表示第i个节点的子树当节点i去时的最大值,dp[i][0]表示第i个节点的子树当节点i不去时的最大值。转移很好转,dp[i][0]=max(dp[j][1],dp[j][0]) (j是i的儿子),dp[i][1]=dp[j][0] (j是i的儿子)。

代码

// poj2342
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#define LL long long
#define inf 2147483647
#define Pi 3.1415926535898
#define fre(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std;
LL getint() {
LL x=getchar(),t=0,f=1;if (x>'9' || x<'0') {if (x=='-') f=-1;x=getchar();}
while (x>='0' && x<='9') {t=t*10+x-48;x=getchar();}return t*f;
}
void putint(LL x) {
if (x<0) putchar('-'),x=-x;
if (x>9) putint(x/10);putchar(x%10+48);
} int dp[1000010][5],n,f[1000010],x,y;
bool b[1000010]; void tree_dp(int u) {
b[u]=1;
for (int i=1;i<=n;i++)
if (!b[i] && f[i]==u) {
tree_dp(i);
dp[u][1]+=dp[i][0];
dp[u][0]+=max(dp[i][1],dp[i][0]);
}
}
int main() {
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&dp[i][1]);
for (int i=1;i<=n-1;i++)
scanf("%d%d",&x,&y),f[x]=y;
int u=n;
while (f[u]) u=f[u];
tree_dp(u);
printf("%d",max(dp[u][1],dp[u][0]));
return 0;
}

  

最新文章

  1. ASP.NET Aries JSAPI 文档说明:AR.DataGrid
  2. Hibernate4.0之HibernateSessionFactory源码详解
  3. Linux 第05天
  4. fir.im weekly - 「 持续集成 」实践教程合集
  5. java抓取快递100信息接口
  6. php PDO链接SQL SERVER
  7. javasE学习笔记:关键字super的使用
  8. C# 跨线程操作控件(简洁)
  9. 欧拉工程第58题:Spiral primes
  10. 从ramdisk根文件系统启动Linux 二
  11. Fortify 4.0 帮助文档下载
  12. FAQ系列 | 解读EXPLAIN执行计划中的key_len
  13. 关于Xcode7中的tbd文件
  14. android:ImageView 和ImageButton的区别
  15. JS基于时间戳写的浏览访问人数
  16. iOS基础 - Quartz 2D绘图
  17. 6、Spring+Struts2+MyBatis(mybatis有代理)整合增删改查
  18. (iOS)关于zbar扫描条形码,所搭载的设备
  19. MFC: 获得关机消息;阻止Windows关机
  20. Arch Linux中禁用UTC解决双系统时间问题

热门文章

  1. Android数据存储(二)----PreferenceFragment详解
  2. css3实现立方体的旋转功能
  3. 10SpringMvc_springmvc快速入门小案例(注解版本)
  4. JS框架之收集专帖
  5. 【转】【C#】判断两个文件是否相同
  6. C语言 读取文件中特定数据
  7. Boost_udp错误
  8. 安装mysql-connector-python
  9. [vim配置]windows下在vim中使用gcc/g++编译调试c/cpp文件
  10. 客户端禁用cookies后session是否还起效果