POJ2342-Anniversary party-树形DP入门
链接:poj.org/problem?id=2342
大意:一棵上下级关系树,直接上司不能和下属一起出席,每人都有权值,求出席party的人价值和最大值。
树形DP:dp[i]// 以i号人为根的关系树,dp [i][1]表示当前树 i 号人出席的价值和最大值,表示当前树 i 号人不出席的价值和最大值。
方程:dp[i][0] +=Σ max(dp[son][0],dp[son][1]);
dp[i][1] +=Σ dp[son][0];
dp[son] 在dp[i]之前算,所以DFS。
#include <iostream> #include <cstring> #include <algorithm> #include <cstdio> using namespace std; long long dp[6666][2]; int cnt; int head[6666]; int v[6666]; int in[6666]; struct edge {int to,next; }E[6666]; void addedge(int from , int to) {E[cnt].to = to;E[cnt].next = head[from];head[from] = cnt++; } void dfs(int now) {for (int i = head[now] ; i != -1 ; i = E[i].next ){int to = E[i].to;dfs(to);dp[now][0] += max(dp[to][1],dp[to][0]);dp[now][1] += dp[to][0];}return; } int main() {int N;//freopen("in.txt","r",stdin);ios::sync_with_stdio(false);cin >> N;memset(dp,0,sizeof(dp));for (int i = 1; i <= N ; i++){cin >> dp[i][1];}int a,b;cnt = 0;memset(head,-1,sizeof head);long long start = N*(N+1)/2;while (cin >> a >> b &&a!=0&&b!=0){addedge(b,a);start -= (long long)a;}dfs((int)start);cout << max(dp[start][1],dp[start][0]) << endl; }
转载于:https://www.cnblogs.com/HITLJR/p/5964794.html
POJ2342-Anniversary party-树形DP入门相关推荐
- POJ - 2342 Anniversary party(树形dp入门)
题目链接:点击查看 题目大意:每个人都有一个快乐值,给定一个树状的从属关系,仅当上司和下属都不在的时候这个个人的快乐值才能表现出来,问怎么样才能让整体的快乐值达到最大 题目分析:做线段树做吐了,来换换 ...
- POJ 2342 | HDU 1520 Anniversary party 树形DP(入门题)
传送门:POJ 2342 题目大意: 有若干人参加一个聚会,如果两个人之间有直接的上下属关系,则只能去一个.每个人都有个高兴值,问高兴值之和最大是多少? 思路: 之前一直觉得树形DP比较难,现在发现树 ...
- HDU - 1520 Anniversary party [树形dp]
Anniversary party 时限:1000ms Problem Description There is going to be a party to celebrate the 80-th ...
- 树形DP入门题目推荐以及解析
关于树形DP几道入门题目 今天恶补树形DP,感觉海星. 其实挺简单的. 介绍几道例题,我会的. 1.洛谷P1352 没有上司的舞会 我的一篇题解 我们可以考虑每一个节点都是有两种情况. 一个是被邀请: ...
- hdu_Anniversary party_(树形DP入门题)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意:有N个人,N-1个人有自己的上司,每个人有一个快乐值,如果这个人参加了聚会,那么这个人的直 ...
- 【树形DP】树形DP入门详解+例题剖析
树形DP 树形DP准确的说是一种DP的思想,将DP建立在树状结构的基础上.整体的思路大致就是用树形的结构存储数据. 要学树形DP之前肯定是要先学会树和图的呀,至少先学会链式前向星,不会的话可以看一下我 ...
- 树形DP入门(二叉苹果树+没有上司的舞会)
树形dp学习笔记 - _Lancy - 博客园二叉苹果树 二叉苹果树 没有上司的舞会 二叉苹果树的处理可以说是非常模板了,正常容易联想到倒过来的数字三角形 for(int i=n;i>=1;i- ...
- 宋体节点hdoj 1520 Anniversary party(树形dp)
每日一贴,今天的内容关键字为宋体节点 标题链接 按照级等我们可以建一颗树,如图 我们可以把一个节点当作一个人,每一个节点都有一个权重.按照标题意思,如果我们取了某个节点,那么他的父节点和子节点都是不能 ...
- layui树形父子不关联_DP专题7 | 没有上司的舞会 洛谷1352(树形DP)
高能预警:这是一篇超过5分钟的学习文章,暑假了可以多学会 本篇继续咱们的DP专题,树形DP入门.动态规划每一个类型的DP都是深坑,期望童鞋们自己在这个系列的基础上多花时间进行拓展,学习愉快~ 在讨论树 ...
- 2018.09.01 独立集(树形dp)
描述 给定一颗树(边权为1),选取一个节点子集,使得该集合中任意两个节点之间的距离都大于K.求这个集合节点最多是多少 输入 第一行是两个整数N,K 接下来是N-1行,每行2个整数x,y,表示x与y有一 ...
最新文章
- 给定二叉树先序、中序遍历序列,求后序遍历
- php url 删除参数错误,为什么在通过改型2按id删除数据时会出现IllegalArgumentException错误?以及如何修复它...
- 数据挖掘系列(2)--关联规则FpGrowth算法
- chrome 看每行代码的运行时间
- zhlan--Python中常见的几种格式化输出
- I/0口输入输出实验 学习IO口的位操作方法,分别选择P0、P1、P2、P3端口中的某一位,该位作为输出使用,连接一只发光二极管,控制器闪烁。
- 如何批量修改网页 更新网站 一键保存 windows查看和排序
- oracle的关闭过程(各个模式关闭)
- github命令记录
- Hadoop配置Yarn
- MCAFEE卸载软件测试初学者,迈克菲卸载软件怎么用(手把手教你彻底卸载干净)...
- 新世纪电影城热闹的三月 好片连连看 图
- https://mp.weixin.qq.com/s?__biz=MzkxNTIzODIxNQ==tempkey=MTEwOV9qbGlub091aVlKb1NtOVZKV3lTcHgwd3U0NG
- W5500开发笔记 | 01- W5500 Socket API的说明
- win7配置FTP服务器
- 【UVM基础】3、核心基类和机制
- 【模电实验】基尔霍夫定律、叠加定理和戴维南定理验证实验
- Artefact China 获得CCPS网络安全等保三级证书
- IMU参数对比(未完待续)
- 网贷平台老板跑路,程序员这波操作很溜
热门文章
- Science | 谷岩/王朗团队揭示大脑中的免疫细胞竟是记忆遗忘的“主谋”
- 揭秘毕加索被隐藏千年的“画中画”,神经网络让它重新面世
- AI“换脸”打开潘多拉魔盒,如何应对?
- 光子人工智能芯片助“中国芯”换道超车
- DARPA宣布未来五年将投资20亿美元开发下一波人工智能技术
- Gartner预测:2025年,人工智能将创造200万个新增就业机会
- 2017年全球AI芯片公司大盘点
- 中国在国际上首次提出全液态量子器件与计算技术概念
- 学前端的后果原来这么严重?! | 每日趣闻
- 实名羡慕!蚂蚁员工激励达 1376.9 亿,人均能在杭州买套 283 平的房子?