链接: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入门相关推荐

  1. POJ - 2342 Anniversary party(树形dp入门)

    题目链接:点击查看 题目大意:每个人都有一个快乐值,给定一个树状的从属关系,仅当上司和下属都不在的时候这个个人的快乐值才能表现出来,问怎么样才能让整体的快乐值达到最大 题目分析:做线段树做吐了,来换换 ...

  2. POJ 2342 | HDU 1520 Anniversary party 树形DP(入门题)

    传送门:POJ 2342 题目大意: 有若干人参加一个聚会,如果两个人之间有直接的上下属关系,则只能去一个.每个人都有个高兴值,问高兴值之和最大是多少? 思路: 之前一直觉得树形DP比较难,现在发现树 ...

  3. HDU - 1520 Anniversary party [树形dp]

    Anniversary party 时限:1000ms Problem Description There is going to be a party to celebrate the 80-th ...

  4. 树形DP入门题目推荐以及解析

    关于树形DP几道入门题目 今天恶补树形DP,感觉海星. 其实挺简单的. 介绍几道例题,我会的. 1.洛谷P1352 没有上司的舞会 我的一篇题解 我们可以考虑每一个节点都是有两种情况. 一个是被邀请: ...

  5. hdu_Anniversary party_(树形DP入门题)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意:有N个人,N-1个人有自己的上司,每个人有一个快乐值,如果这个人参加了聚会,那么这个人的直 ...

  6. 【树形DP】树形DP入门详解+例题剖析

    树形DP 树形DP准确的说是一种DP的思想,将DP建立在树状结构的基础上.整体的思路大致就是用树形的结构存储数据. 要学树形DP之前肯定是要先学会树和图的呀,至少先学会链式前向星,不会的话可以看一下我 ...

  7. 树形DP入门(二叉苹果树+没有上司的舞会)

    树形dp学习笔记 - _Lancy - 博客园二叉苹果树 二叉苹果树 没有上司的舞会 二叉苹果树的处理可以说是非常模板了,正常容易联想到倒过来的数字三角形 for(int i=n;i>=1;i- ...

  8. 宋体节点hdoj 1520 Anniversary party(树形dp)

    每日一贴,今天的内容关键字为宋体节点 标题链接 按照级等我们可以建一颗树,如图 我们可以把一个节点当作一个人,每一个节点都有一个权重.按照标题意思,如果我们取了某个节点,那么他的父节点和子节点都是不能 ...

  9. layui树形父子不关联_DP专题7 | 没有上司的舞会 洛谷1352(树形DP)

    高能预警:这是一篇超过5分钟的学习文章,暑假了可以多学会 本篇继续咱们的DP专题,树形DP入门.动态规划每一个类型的DP都是深坑,期望童鞋们自己在这个系列的基础上多花时间进行拓展,学习愉快~ 在讨论树 ...

  10. 2018.09.01 独立集(树形dp)

    描述 给定一颗树(边权为1),选取一个节点子集,使得该集合中任意两个节点之间的距离都大于K.求这个集合节点最多是多少 输入 第一行是两个整数N,K 接下来是N-1行,每行2个整数x,y,表示x与y有一 ...

最新文章

  1. 给定二叉树先序、中序遍历序列,求后序遍历
  2. php url 删除参数错误,为什么在通过改型2按id删除数据时会出现IllegalArgumentException错误?以及如何修复它...
  3. 数据挖掘系列(2)--关联规则FpGrowth算法
  4. chrome 看每行代码的运行时间
  5. zhlan--Python中常见的几种格式化输出
  6. I/0口输入输出实验 学习IO口的位操作方法,分别选择P0、P1、P2、P3端口中的某一位,该位作为输出使用,连接一只发光二极管,控制器闪烁。
  7. 如何批量修改网页 更新网站 一键保存 windows查看和排序
  8. oracle的关闭过程(各个模式关闭)
  9. github命令记录
  10. Hadoop配置Yarn
  11. MCAFEE卸载软件测试初学者,迈克菲卸载软件怎么用(手把手教你彻底卸载干净)...
  12. 新世纪电影城热闹的三月 好片连连看 图
  13. https://mp.weixin.qq.com/s?__biz=MzkxNTIzODIxNQ==tempkey=MTEwOV9qbGlub091aVlKb1NtOVZKV3lTcHgwd3U0NG
  14. W5500开发笔记 | 01- W5500 Socket API的说明
  15. win7配置FTP服务器
  16. 【UVM基础】3、核心基类和机制
  17. 【模电实验】基尔霍夫定律、叠加定理和戴维南定理验证实验
  18. Artefact China 获得CCPS网络安全等保三级证书
  19. IMU参数对比(未完待续)
  20. 网贷平台老板跑路,程序员这波操作很溜

热门文章

  1. Science | 谷岩/王朗团队揭示大脑中的免疫细胞竟是记忆遗忘的“主谋”
  2. 揭秘毕加索被隐藏千年的“画中画”,神经网络让它重新面世
  3. AI“换脸”打开潘多拉魔盒,如何应对?
  4. 光子人工智能芯片助“中国芯”换道超车
  5. DARPA宣布未来五年将投资20亿美元开发下一波人工智能技术
  6. Gartner预测:2025年,人工智能将创造200万个新增就业机会
  7. 2017年全球AI芯片公司大盘点
  8. 中国在国际上首次提出全液态量子器件与计算技术概念
  9. 学前端的后果原来这么严重?! | 每日趣闻
  10. 实名羡慕!蚂蚁员工激励达 1376.9 亿,人均能在杭州买套 283 平的房子?