hdu1520
基本的树形dp
#include <cstring>
#include <cstdio>
#include <vector>
using namespace std; const int MAX_N = (int)(6e3) + ; int n;
int weight[MAX_N];
vector <int> edge[MAX_N];
bool vis[MAX_N];
int dp[MAX_N][];
int root; void dfs(int father, int u)
{
for (int i = ; i < (int)edge[u].size(); i++)
{
int v = edge[u][i];
if (v != father)
dfs(u, v);
}
dp[u][] = ;
dp[u][] = weight[u];
for (int i = ; i < (int)edge[u].size(); i++)
{
int v = edge[u][i];
if (v == father)
continue;
dp[u][] += max(dp[v][], dp[v][]);
dp[u][] += dp[v][];
}
} void input()
{
for (int i = ; i < n; i++)
{
scanf("%d", &weight[i]);
edge[i].clear();
}
memset(vis, , sizeof(vis));
int a, b;
while (scanf("%d%d", &a, &b), a | b)
{
a--;
b--;
vis[a] = true;
edge[a].push_back(b);
edge[b].push_back(a);
}
for (int i = ; i < n; i++)
{
if (!vis[i])
{
root = i;
break;
}
}
} int main()
{
while (scanf("%d", &n) != EOF)
{
input();
dfs(-, root);
printf("%d\n", max(dp[root][], dp[root][]));
}
return ;
}
hdu1520的更多相关文章
- hdu1520 第一道树形DP,激动哇咔咔!
A - 树形dp Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- hdu1520 (树形dp)
hdu1520 http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意是给定一棵树,每个结点有一个价值,要我们选择任意个结点使得总价值最大,规则是如果父亲结 ...
- 【树形dp小练】HDU1520 HDU2196 HDU1561 HDU3534
[树形dp]就是在树上做的一些dp之类的递推,由于一般须要递归处理.因此平庸情况的处理可能须要理清思路.昨晚開始切了4题,作为入门训练.题目都很easy.可是似乎做起来都还口以- hdu1520 An ...
- 补上题代码 hdu1520
#include<iostream> #include<cmath> #include<algorithm> #include<vector> #inc ...
- hdu1520 树形dp Anniversary party
A - Anniversary party Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I6 ...
- hdu1520 Anniversary party (树形dp)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1520题意:上司和直系下属不能同时参加party,求party的最大活跃值.输入: 输入n个 ...
- hdu1520 树形dp
树形dp入门,在树上进行dp. 状态转移方程: dp[i][0] = max(dp[j][0], dp[j][1]);//i为j的上司 并且i不来 dp[i][1] = dp[j][0];//i来了 ...
- 树形dp Anniversary party(HDU1520)
题意:给出一棵树,(上下级关系)每个节点都有一个权值,要求选出一些节点满足这些节点任意连个点都不是直接的上下级关系,可以得到的最大权值是多少? 分析:对于每个点有两个状态选或者不选,用状态数组dp[u ...
- HDU-1520 Anniversary party(树形DP)
题目大意:一棵树,每个节点都带权.从中取出一些节点,并且子节点不能与父节点同时取,求能取得的最大值. 题目分析:定义状态dp(u,0/1)表示u点不取/取.则状态转移方程为: dp(u,1)=sum( ...
随机推荐
- HBase命令(三) -- 增删改查
新增 //语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp> //新增或 ...
- Win8 删除桌面右键中的显卡选项
打开注册表 regedit.exe HKEY_CLASSES_ROOT Directory Background shellex ContextMenuHandlers 按照上边的路径找过去.. 删除 ...
- webservice报错Message part refundRequest was not recognized. (Does it exist in service WSDL?)
最近在做一个支付的接口. 因为接口方使用webservice交互. 我只能去学习了下webservice 现在出了一个很古怪的问题~ 我在请求他们url的时候, 返回给我找不到控制名错误 Mess ...
- Scala 中object和class的区别
Scala中没有静态类型,但是有有“伴侣对象”,起到类似的作用. Scala中类对象中不可有静态变量和静态方法,但是提供了“伴侣对象”的功能:在和类的同一个文件中定义同名的Object对象:(须在同一 ...
- Java通过JNI调用C
Java调用C有多种方式,本文介绍笔者最近的学习过程,避免今后再犯类似的错误. 首先,Java肯定是调用C的动态链接库,即通过编译器编译后的dll/so文件. 下面介绍gcc编译dll的方法. 一般情 ...
- ActiveMQ 目录
(1) ActiveMQ简介 (2) JMS基本概念和模型 (3) JMS的可靠性 (4) ActiveMQ结合Spring开发 (5)ActiveMQ支持的传输协议 (6)ActiveMQ消息存储持 ...
- [译]Mongoose指南 - Schema
定义schema 用mongoose的第一件事情就应该是定义schema. schema是什么呢? 它类似于关系数据库的表结构. var mongoose = require('mongoose'); ...
- 2015baidu复赛 矩形面积(包凸 && ps:附quickhull模板)
矩形面积 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 如何在CentOS 6.5上安装EPEL 源
EPEL 是什么? EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentO ...
- 格式化Double类型
//格式化Double类型 //F:默认是2位小数点 //F6:输出小数点后6位,不够的话用0补齐 //G:默认输出原先的,保留小数点后面的位数 LalTotal.Text = "合计:原始 ...