题意:

给定n个点,每个地点有value[i]的宝物,而且有的宝物必须是另一个宝物取了才能取,问取m个点可以获得的最多宝物价值

思路:

树形dp搞一下,0为根节点,m要+1,dfs从0开始跑一遍就好了

/* ***********************************************
Author        :devil
Created Time  :2016/3/23 19:23:54
************************************************ */
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <stdlib.h>
using namespace std;
#define N 210
int n,m,dp[N][N],v[N];
bool vis[N];
vector<int>eg[N];
void init()
{for(int i=0;i<=n;i++)eg[i].clear();memset(dp,0,sizeof(dp));memset(vis,false,sizeof(vis));
}
void dfs(int u)
{vis[u]=true;dp[u][1]=v[u];for(int i=0;i<eg[u].size();i++){int to=eg[u][i];if(!vis[to]) dfs(to);for(int j=m;j>=1;j--)for(int k=1;k<j;k++)dp[u][j]=max(dp[u][j],dp[u][k]+dp[to][j-k]);}
}
int main()
{//freopen("in.txt","r",stdin);int x,y;while(~scanf("%d%d",&n,&m)&&(n+m)){init();for(int i=1;i<=n;i++){scanf("%d%d",&x,&y);v[i]=y;eg[x].push_back(i);}m++;dfs(0);printf("%d\n",dp[0][m]);}return 0;
}

转载于:https://www.cnblogs.com/d-e-v-i-l/p/5314442.html

HDU1561 The more, The Better(树形dp)相关推荐

  1. hdu1561 树形dp

    题意:       给你n个东西,每个东西有自己的价值,让你从里面最多取出m个物品,问最大的价值,有的物品有限制,就是必须先取出某个物品后才能取出这个物品. 思路:       树形dp,应该是树形的 ...

  2. 动态规划 —— 树形 DP

    [概述] 树形动态规划是在树的数据结构上的动态规划,在各个阶段呈现树状关系的时候可以采用树形 DP,其基本思想是由子节点的信息推出父节点的信息. 树形 DP 中,是通过以下 4 点树的特点来进行建图的 ...

  3. BNUOJ 52305 Around the World 树形dp

    题目链接: https://www.bnuoj.com/v3/problem_show.php?pid=52305 Around the World Time Limit: 20000msMemory ...

  4. [树形dp] Jzoj P5233 概率博弈

    Description 小A和小B在玩游戏.这个游戏是这样的: 有一棵n个点的以1为根的有根树,叶子有权值.假设有m个叶子,那么树上每个叶子的权值序列就是一个1->m 的排列. 一开始在1号点有 ...

  5. fwt优化+树形DP HDU 5909

    1 //fwt优化+树形DP HDU 5909 2 //见官方题解 3 // BestCoder Round #88 http://bestcoder.hdu.edu.cn/ 4 5 #include ...

  6. BZOJ 1040 ZJOI2008 骑士 树形DP

    题目大意:给定一个基环树林,每一个点上有权值,要求选择一个权值和最大的点集,要求点集中的随意两个点之间不能直接相连 最大点独立集--考虑到n<=100W,网络流铁定跑不了,于是我们考虑树形DP ...

  7. POJ 3342 树形DP+Hash

    这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了. 今天我又重新捡了起来.(哈哈1A了) 题意: 没有上司的舞会+判重 思路: hash一下+树形DP 题目中给的人名hash到数字,再进行运算 ...

  8. [NC15748]旅游 树形dp基础

    菜鸡第一次接触树形dp这个东西,不过这个东西还是很好理解的(可能是因为模板题吧) 个人感觉,相比线性dp,树形dp的状态转移方程更加的直观,难点主要是在"树"的结构上比较麻烦. 题 ...

  9. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

  10. 树形dp ---- gym101667 A(贪心 + 树形dp + 两个dp方程组维护)

    题目链接 题目大意: 就是一棵5e35e35e3的树,可以选择一些点,放上基站,如果uuu上的基站价值为ddd,那么距离uuu小于等于ddd的点都会被覆盖,问使得整棵树被覆盖需要的最小价值. 解题思路 ...

最新文章

  1. python dataframe 如何去除缺失值
  2. Emacs for Go
  3. 可扩展且侵入性最小的脑机接口平台
  4. linux中看挂载的磁盘用什么命令,使用Linux命令行挂载硬盘和分区 | MOS86
  5. Java常用API(五)Math 数学类
  6. numpy使用MKL库提升计算性能
  7. 信息学奥赛一本通(1050:骑车与走路)
  8. 【Hive】Hive内部表/外部表
  9. 在 Mac 上如何使用时间机器备份文件?
  10. uCOS-II 学习笔记之任务管理--------任务控制块OS_TCB
  11. NS版暗黑破坏神3金手指开发教程(1)
  12. 微信公众号微信支付提示 调用支付JSAPI缺少参数:appId
  13. 利用QQ群推广网站的经验分享
  14. MacOS / Vmware Fusion无法连接虚拟设备sata0:1,因为主机上没有相应设备
  15. 抖音小店还能做吗?如何解决拍单问题?
  16. Go是Google的语言,而不是我们的语言
  17. gsoc 任务_黑客#GSOC:如何获得现实生活经验并支持开源
  18. vue 导航切换页面
  19. odoo 恢复数据库前端报错
  20. 解决NETAPP硬盘故障

热门文章

  1. DataTable的Select方法
  2. antd的Tree控件实现点击展开功能
  3. eclipse集成testng插件
  4. git配置ssh秘钥(公钥以及私钥)windows
  5. Python第3次作业
  6. Jquery 强大的表单验证操作
  7. mysql-5.7安装、配置
  8. 2018/2/28 省选模拟赛 40分
  9. CentOS安装中文包
  10. VS2005 中网站转为Web应用程序的方法