树形dp是建立的树的基础上的有二叉和三叉等等树,现在学到的知识很简单的树形dp,但还是要注意深搜时要标记避免已经搜素得到过的结果可以直接用了不用在浪费时间去搜素了。还有就是对根节点的处理。

点击打开链接

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int dp[1005],flag[1005],cost[1005];
vector <int> g[1010];
void dfs(int x)
{
int k;
flag[x]=1;   //已经搜过了,并且会不断搜,然后搜到结果
if(g[x].size()==0)
{
dp[x]=cost[x];
return ;
}
for(int i =0; i<g[x].size();i++)
{
k=g[x][i];
if(flag[k]==0)  //还没有搜索过结果
dfs(k);
dp[x]=max(dp[x],cost[x]+dp[k]);
}
}
int main()
{
int n,m;
while(~scanf("%d",&n))
{
cost[0]=0;
for(int i =1; i<=n;i++)
{
scanf("%d",&cost[i]);
g[i].clear();
flag[i]=1;  //注意memset只能初始化为0,-1,so
}
scanf("%d",&m);
while(m--)
{
int x, y;
scanf("%d%d",&x,&y);
g[x].push_back(y);
flag[y]=0;
}
for(int i = 0;i < n; i++)
{
if(flag[i])
g[0].push_back(i);  //存着根节点。这题存的是所有软件包的值,所以要把所有的跟节点的中国的最大值。
}
memset(flag ,0,sizeof(flag));
memset(dp,-1,sizeof(dp));
dfs(0); //从跟节点往下搜素出答案。
printf("%d\n",dp[0]);
}
return 0;
}

简单的树形dp NOJ376 小强的Linux相关推荐

  1. PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树、结点到根结点的距离、树形dp、记忆化搜索

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:下图是对样例的模拟图示,题目就是统计叶子结点卖出去的钱数.根据下图,我们第一步是建树,第二步是统计叶子结点到根结点的距离,然后才能知道 ...

  2. 【CF 543D】Road Improvement,树形DP

    传送门 题意: 给定一棵树,起初树边都是坏边,对于以节点ii为起点,你需要把一些坏边改成好边,使得从ii出发到达其他节点的路径上至多只有一条坏边,求每个节点ii的方案数 思路: 学习了一些新姿势 re ...

  3. 洛谷P1351 联合权值(树形dp)

    题意 题目链接 Sol 一道很简单的树形dp,然而被我写的这么长 分别记录下距离为\(1/2\)的点数,权值和,最大值.以及相邻儿子之间的贡献. 树形dp一波.. #include<bits/s ...

  4. P2016 战略游戏[树形dp]

    题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题. 他要建立一个古城堡,城堡中的路形成一棵树.他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能 ...

  5. bzoj 3611: [Heoi2014]大工程(虚树+树形DP)

    3611: [Heoi2014]大工程 Time Limit: 60 Sec  Memory Limit: 512 MB Submit: 1697  Solved: 718 [Submit][Stat ...

  6. POJ 1192 最优连通子集(树形DP)

    最优连通子集 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1649   Accepted: 855 Description ...

  7. 树形DP(HDOJ1011 2196 4003 5148 POJ2342)

    自己整理了个比较水的模版...一般简单的树形DP题基本可以解.... 用HDOJ 4003举例 题目大意:给一棵树,以及每人通过此边的花费,求用给定人数遍历树的最小花费 输入 点数,根位置,人数 始边 ...

  8. 树形DP总结,持续更新

    自己做了动态规划的题目已经有了一个月,但是成效甚微,所以来总结一下动态规划,希望自己能够温故知新.这个博客是关于树形dp的,动态规划的一类题目. 首先从最简单的树形DP入手,树形DP顾名思义就是一棵树 ...

  9. cactus仙人掌图【仙人掌圆方树+树形DP+单调队列】

    题目链接 BZOJ 1023 首先,圆方树是比较好想到的,维护直径,我们最方便的做法就是先让它变成一棵树,这里因为是仙人掌图,所以就用圆方树来构建. 再者,就是维护直径了,比较好想到的是非环上结点,就 ...

最新文章

  1. 为什么源码编译安装mysql_从源码编译安装MySQL的步骤
  2. Image classification with deep learning常用模型
  3. Eming cup Problem D. Game of numbers
  4. ReentrantLock.nofairTryAcquire
  5. SYBASE灾难备份方案
  6. linux int64_t 头文件,这对int64_t的处理是GCC和Clang的错误吗?
  7. c语言链表交换2个元素的位置,C语言 单链表 查找一个元素出现的所有位置
  8. [译]JS闭包:For循环中的setTimeout
  9. 线性代数【五】向量(2):向量组的秩,向量内积、正交,正交规范化,向量空间
  10. Android音视频开发
  11. 苹果android系统版本,给Mac装上的Android系统?Remix OS PC版
  12. 采购工作的基本内容和注意事项
  13. yuv 10bit 8bit
  14. c++实现地图控制扫雷(界面优化版
  15. C++设计模式(1)——设计模式简介
  16. C语言使用指针处理opencv中的Mat图像数据
  17. k8s集群监控cadvisor+prometheus+grafana部署
  18. 智慧养老解决方案之“RFID养老院智能护理系统“打造临床医护管家
  19. Win10 桌面图标字体怎么单独换成深色,设置白色壁纸后图标字体看不见
  20. 学报格式和论文格式一样吗_(学报论文格式.doc

热门文章

  1. PHP中文乱码的常见解决方法总结
  2. DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项
  3. VS2013中提示:没有可放置在工具箱上的组件
  4. C#中将字符串内容写入到txt文件中
  5. SpringBoot+Echarts实现请求后台数据显示饼状图
  6. 快速上手用Python搭建自己的第一个pyecharts图表
  7. 6、Dcoker 容器数据卷用DockerFile添加
  8. 实现一个不能被继承的类
  9. sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...
  10. Swagger UI 与SpringMVC的整合 II