首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
选课
3条解析
开通博客写题解
hnust_yangyanjun
发表于 2020-08-22 12:06:52
题意:你有n门课程,你可以选择m门课选修,有的课程有先修课,每一门课程都有学分,求你可获得的最大学分为多少? 思路:树状dp没先修课的与0节点连接,有先修课的与先修课连接,这样就是0节点为根的一棵树了。dp[i][j]表示以i节点为根的子树且选择了i时共选择j门课程的最大学分,这样就满足了先修课的条
展开全文
shyyhs
发表于 2021-03-10 13:23:59
前言 清楚姐姐树形题单的最后一题了... 思路 考虑先当前节点必须把当前节点前面连接到根的节点全部选了..那么我们不妨令为选了节点且选取数量为的一个最大价值.那么转移似乎挺简单的. 代码 #include <bits/stdc++.h> using namespace std; cons
展开全文
DearFrozencodechenback
发表于 2019-08-16 15:16:56
树形dp模板题首先建一个虚拟节点0,让原本的森林变成一颗树。然后我们设dp[i][j]表示以i为根的子树中,选j门课的最大价值。转移时我们枚举当前以x为根的子树选课的数量(t),以及分配给x的子节点y多少节课(j)。不难写出方程:dp[x][t]=max(dp[x][t],dp[x][t-j]+dp
展开全文
查看本题
查看本题讨论
相关比赛
1044-0x54 动态规划-树形DP
进入比赛
25022-2021秋季算法入门班第八章习题:动态规划2
进入比赛
25616-自我训练
进入比赛
27023-寒假冲刺
进入比赛
28260-牛客竞赛动态规划专题班树型dp练习
进入比赛
等你来战
查看全部
牛客练习赛144
报名截止时间:2025-09-12 21:30
牛客周赛 Round 109
报名截止时间:2025-09-14 21:00
牛客挑战赛82
报名截止时间:2025-09-19 22:00
牛客周赛 Round 110
报名截止时间:2025-09-21 21:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题