[luoguP1352] 没有上司的舞会(DP)
传送门
树上的dp,从底向上dp就行。
设dp[u][0]表示不选节点 u 的最大值,dp[u][1]表示选节点 u 的最大值。
则状态转移方程为:
dp[u][0] = ∑max(dp[v][1], dp[v][0])
dp[u][1] = ∑dp[v][0] + val[u]
(节点v是节点u的孩子)
——代码
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #define MAXN 12001 5 6 using namespace std; 7 8 int n, cnt; 9 int head[MAXN], to[MAXN], next[MAXN], val[MAXN], f[MAXN], r[MAXN], dp[MAXN][2]; 10 11 inline void add(int x, int y) 12 { 13 to[cnt] = y; 14 next[cnt] = head[x]; 15 head[x] = cnt++; 16 } 17 18 inline void dfs(int u) 19 { 20 int i, v; 21 dp[u][1] = val[u]; 22 for(i = head[u]; i != -1; i = next[i]) 23 { 24 v = to[i]; 25 if(v != f[u]) 26 { 27 f[v] = u; 28 dfs(v); 29 dp[u][0] += max(dp[v][1], dp[v][0]); 30 dp[u][1] += dp[v][0]; 31 } 32 } 33 } 34 35 int main() 36 { 37 int i, x, y, pos; 38 scanf("%d", &n); 39 memset(head, -1, sizeof(head)); 40 for(i = 1; i <= n; i++) scanf("%d", &val[i]); 41 for(i = 1; i < n; i++) 42 { 43 scanf("%d %d", &x, &y); 44 add(y, x); 45 r[x]++; 46 } 47 for(i = 1; i <= n; i++) 48 if(!r[i]) 49 { 50 pos = i; 51 break; 52 } 53 dfs(pos); 54 printf("%d", max(dp[pos][0], dp[pos][1])); 55 return 0; 56 }
View Code
转载于:https://www.cnblogs.com/zhenghaotian/p/6807732.html
[luoguP1352] 没有上司的舞会(DP)相关推荐
- [LuoguP1352][FJSC]没有上司的舞会
[LuoguP1352][FJSC]没有上司的舞会(Link) 现在你有一棵树,每一个点有一个点权\(R[i]\),如果选择了\(i\)点,那么\(i\)子树上的所有的点都不能选,现在要求选择若干个点 ...
- 树形DP入门(二叉苹果树+没有上司的舞会)
树形dp学习笔记 - _Lancy - 博客园二叉苹果树 二叉苹果树 没有上司的舞会 二叉苹果树的处理可以说是非常模板了,正常容易联想到倒过来的数字三角形 for(int i=n;i>=1;i- ...
- 树形DP——没有上司的舞会
树形DP--没有上司的舞会 题目 算法分析 Code 总结与反思 题目 Luogu:P1352 https://www.luogu.com.cn/problem/P1352 题目描述 某大学有 nnn ...
- 1380 没有上司的舞会
1380 没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description Ural大学有N个职员,编号为1~N.他 ...
- 洛谷 P1352 没有上司的舞会
洛谷 P1352 没有上司的舞会 Description 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会, ...
- codevs1380 没有上司的舞会
1380 没有上司的舞会 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个快 ...
- P2159 [SHOI2009]舞会(DP高精)
P2159 [SHOI2009]舞会(DP&高精) n=200n=200n=200,考虑n3n^3n3的dpdpdp,但是本题没有模数,所以要高精度,且高精常数巨大,所以考虑n2n^2n2 的 ...
- layui树形父子不关联_DP专题7 | 没有上司的舞会 洛谷1352(树形DP)
高能预警:这是一篇超过5分钟的学习文章,暑假了可以多学会 本篇继续咱们的DP专题,树形DP入门.动态规划每一个类型的DP都是深坑,期望童鞋们自己在这个系列的基础上多花时间进行拓展,学习愉快~ 在讨论树 ...
- 洛谷P1352 没有上司的舞会(树形DP水题)
题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...
- 洛谷 P1352 没有上司的舞会(树形 DP)
题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...
最新文章
- C++:new 和 delete
- [css] 说出至少十条你理解的css规范
- 提高C++程序运行效率的10个简单方法
- python程序分析,用Python编写分析Python程序性能的工具的教程
- 脚本语言(确认补遗)
- Spring Boot Serverless 实战系列“架构篇”首发 | 光速入门函数计算
- GDAL源码剖析(六)之GDAL开发及其调试
- zoj 3581 A Simple Test 模拟题
- 事务、事务的隔离级别、一致性
- java核心技术卷——学习笔记(一)
- 数学分析 隐函数定理及其应用(第18章)
- 【转】纯干货:PS高手完全自学宝典(原创文章)
- 4种Word文档解除密码保护的方法
- 【观察】百度搜索开放平台
- 美团 P2P 图书馆实践:5天时间1845册图书共享入库
- 【wireshark、MISC】将pcapng文件转为pcap文件,再用NetworkMiner分析流量包
- 视频教程-用Java从零开始开发一个物联网项目-物联网技术
- 113道C语言题目,超经典的~~~
- PySide2安装教程
- 用C++封装一个简单的英汉词典
热门文章
- Linux系统编程—— fork() 函数详解
- 设计模式---桥接模式(C++实现)
- Mac Idea批量删除空行
- 地面控制点的定义与作用_彩色透水混凝土路面在海绵城市建设中能起多大作用?...
- SQLserver添加主键
- 动态开辟内存_C/C++工程师你理解程序的内存分区吗?
- python自动生成报告_python实现自动生成oracle awr报告
- double除以int结果是int吗_游戏开发java中int可以用汉字吗?
- [渝粤教育] 中国地质大学 微积分(二) 复习题 (2)
- caffe之 Blob、Layer、Net