首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
选课
4条解析
开通博客写题解
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
展开全文
codesonic
发表于 2019-09-02 22:09:53
考虑树形DP,这题其实是把背包搬到了树上,使得选一个物体需要经过他的前置物体才能选 那么我们只要在原有的树形DP上加一个背包即可 那么有方程,其中to是所有的儿子,第二维存的就是一维背包的东西 详细见代码... #include<bits/stdc++.h> using namespa
展开全文
查看本题
查看本题讨论
相关比赛
1044-0x54 动态规划-树形DP
进入比赛
25022-2021秋季算法入门班第八章习题:动态规划2
进入比赛
25616-自我训练
进入比赛
27023-寒假冲刺
进入比赛
28260-牛客竞赛动态规划专题班树型dp练习
进入比赛
等你来战
查看全部
牛客练习赛142
报名截止时间:2025-07-11 21:30
2025年第一届上海师范大学程序设计竞赛(同步赛)
报名截止时间:2025-07-13 18:00
牛客周赛 Round 100
报名截止时间:2025-07-13 21:00
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
2025牛客暑期多校训练营2
报名截止时间:2025-07-17 17:00
牛客周赛 Round 101
报名截止时间:2025-07-20 21:00
"现代汽车前瞻杯"2025牛客暑期多校训练营3
报名截止时间:2025-07-22 17:00
2025牛客暑期多校训练营4
报名截止时间:2025-07-24 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题