动态规划(算法竞赛、蓝桥杯)--树形DP树形背包

1、B站视频链接:E18 树形DP 树形背包_哔哩哔哩_bilibili

8b088b3da56746bf9b42b193d53fb30f.png

76edf517781244a6a412813143325d96.png

39143d27eb634f47992beb1b446effc3.png

#include <bits/stdc++.h> 
using namespace std;
const int N=110;
int n,V,p,root;
int v[N],w[N]; 
int h[N],to[N],ne[N],tot; //邻接表
int f[N][N];void add(int a,int b){to[++tot]=b;ne[tot]=h[a];h[a]=tot;
}
void dfs(int u){for(int i=v[u];i<=V;i++) f[u][i]=w[u];for(int i=h[u]; i; i=ne[i]){  //子节点 int s=to[i];dfs(s);for(int j=V;j>=v[u];j--)    //体积for(int k=0;k<=j-v[u];k++)//决策f[u][j]=max(f[u][j],f[u][j-k]+f[s][k]);}
}
int main(){cin>>n>>V;              //物品个数,背包容量for(int i=1;i<=n;i++){cin>>v[i]>>w[i]>>p;   //体积,价值,依赖的物品编号if(p==-1) root=i;else add(p,i);}dfs(root);cout<<f[root][V];return 0;
}

2、题目链接:[CTSC1997] 选课 - 洛谷

4d4177d23497488fb90000da4e25d6ce.png

#include <bits/stdc++.h> 
using namespace std;
const int N=305;
vector<int> e[N]; //邻接表
int n, m, w[N];
int f[N][N];void dfs(int u){f[u][1]=w[u];for(auto v : e[u]){         //子节点dfs(v);for(int j=m+1; j>=1; j--) //课程数for(int k=0; k<j; k++)  //决策f[u][j]=max(f[u][j],f[u][j-k]+f[v][k]);}
}
int main(){scanf("%d%d",&n,&m);for(int i=1; i<=n; i++){int k; scanf("%d%d",&k,&w[i]);e[k].push_back(i);}dfs(0); //虚拟根节点0printf("%d",f[0][m+1]);return 0;
}

[NOIP2006 提高组] 金明的预算方案 - 洛谷

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/506271.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【嵌入式实践】【芝麻】【设计篇-2】从0到1给电动车添加指纹锁:项目可行性分析

0. 前言 该项目是基于stm32F103和指纹模块做了一个通过指纹锁控制电动车的小工具。支持添加指纹、删除指纹&#xff0c;电动车进入P档等待时计时&#xff0c;计时超过5min则自动锁车&#xff0c;计时过程中按刹车可中断P档状态&#xff0c;同时中断锁车计时。改项目我称之为“芝…

Topaz DeNoise AI:一键让照片重获清晰 mac/win版

Topaz DeNoise AI是一款革命性的图片降噪软件&#xff0c;它利用先进的人工智能算法&#xff0c;帮助用户轻松去除照片中的噪点&#xff0c;恢复图像的清晰度和细节。无论是专业摄影师还是摄影爱好者&#xff0c;Topaz DeNoise AI都能成为他们处理图片时的得力助手。 Topaz De…

CVE-2016-5195 复现记录

文章目录 poc前置知识页表与缺页异常/proc/self/mem的写入流程madvise 漏洞点修复 Dirty COW脏牛漏洞是一个非常有名的Linux竞争条件漏洞&#xff0c;虽然早在2016年就已经被修复&#xff0c;但它依然影响着众多古老版本的Linux发行版&#xff0c;如果需要了解Linux的COW&#…

安装Realtek Audio Driver失败[Error Code:-0001]

安装Realtek Audio Driver失败[Error Code&#xff1a;-0001] 首先来看一下我们遇到的问题GPT4的推荐解决方法&#xff08;流水账&#xff09;笔者自己真实有效的解决办法 首先来看一下我们遇到的问题 描述&#xff1a;在笔记本更新完电脑之后&#xff0c;没有自带声音驱动。然…

GVIM常见命令

一、模式之间的切换 二、退出保存 &#xff1a;q 不保存就退出vim &#xff1a;w 保存但不退出vim &#xff1a;wq 保存并退出vim 三、打开侧边栏 如下所示&#xff1a; 在命令模式下输入vt打开侧边栏目录&#xff0c;输入r更新目录 四、光标的移动 不仅是括号&#xff0c;b…

嵌入式烧录报错:板端IP与PC的IP相同

报错&#xff1a; 配置 实际上我配置并没有错。 服务器IP&#xff08;就是本机&#xff09;、板端IP、网关。此处网关必须与板子IP配套&#xff08;可以不存在&#xff09;。 解决 我网卡配置了多个IP。一番删除添加还是报错。 于是点击服务器IP&#xff0c;换成别的&#x…

2、Linux-系统目录

一、查看系统目录 登录Linux后&#xff0c;执行“cd /”&#xff0c;再执行“ls”或者“ll”可以查看系统目录。 二、解释 Linux系统中的所有文件和目录被组织成从一个根节点开始的树状结构&#xff0c;树的根就是“/”。 1、/&#xff1a;文件系统的根 2、系统相关 boot&a…

CSP-201712-2-游戏

CSP-201712-2-游戏 解题思路 初始化变量&#xff1a;定义整数变量n和k&#xff0c;分别用来存储小朋友的总数和淘汰的特定数字。然后定义了num&#xff08;用来记录当前报的数&#xff09;和peopleIndex&#xff08;用来记录当前报数的小朋友的索引&#xff09;。 初始化小朋…

Java中queue的用法

Java中queue的用法 ​ 在Java中&#xff0c;Queue&#xff08;队列&#xff09;是一种常见的数据结构&#xff0c;它遵循先进先出的原则。Java提供了Queue接口&#xff0c;以及一些实现了该接口的类。常见的实现类包括LinkedList和ArrayDeque。 添加元素 queue.add()实例 //…

PTA L2-006 树的遍历

给定一棵二叉树的后序遍历和中序遍历&#xff0c;请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式&#xff1a; 输入第一行给出一个正整数N&#xff08;≤30&#xff09;&#xff0c;是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中…

SD卡数据恢复全攻略,恢复sd卡丢失数据方法

当我们的SD卡&#xff08;Secure Digital Card&#xff09;遭遇数据丢失时&#xff0c;可能会让我们感到焦虑和困惑。不论是意外的删除、格式化&#xff0c;还是由于其他原因导致的数据丢失&#xff0c;恢复这些宝贵的数据都是至关重要的。本文将为你提供一份详尽的SD卡数据恢复…

STM32 GPIO的几种工作模式

介绍STM32 GPIO的几种工作模式 1、输出模式 STM32的引脚输出有两种方式&#xff1a; 1、推挽输出 2、开漏输出 1.1 推挽输出 当引脚设置为推挽输出时&#xff0c;P-MOS和N-MOS共同配合工作。 当使用HAL库 //该函数的作用就是将P-MOS导通&#xff0c;N-MOS关…