传送门

对于具有树形依赖关系的背包问题,我们可以把每棵子树看作是一个泛化物品,那么一棵子树的泛化物品就是子树根节点的这件物品的泛化物品与由根所连的所有子树的泛化物品的和。

整个动规过程就是从叶子进行到根。

 1 #include<cstdio>
 2 #include<vector>
 3 #include<iostream>
 4 #define max(a, b) ((a) > (b) ? (a) : (b))
 5 using namespace std;
 6
 7 inline void read(int &ans) {
 8     static char ch = getchar();
 9     register int neg = 1;
10     ans = 0;
11     for (; !isdigit(ch); ch = getchar())
12         if (ch == '-') neg = -1;
13     for (; isdigit(ch); ch = getchar())
14         ans = ans * 10 + ch - '0';
15     ans *= neg;
16 }
17
18 const int N = 310;
19 int n, m;
20 vector < int > g[N];
21 int w[N], f[N][N];
22
23 void dfs(int u, int c) {
24     if (c <= 0) return;
25     for (int i = 0; i < g[u].size(); ++i) {
26         int &v = g[u][i];
27         for (int j = 0; j < c; ++j) f[v][j] = f[u][j] + w[v];
28         dfs(v, c - 1);
29         for (int j = 1; j <= c; ++j)
30             f[u][j] = max(f[u][j], f[v][j - 1]);
31     }
32 }
33
34 int main() {
35     read(n); read(m);
36     for (int u, i = 1; i <= n; ++i) read(u), g[u].push_back(i), read(w[i]);
37     dfs(0, m);
38     printf("%d\n", f[0][m]);
39     return 0;
40 }

View Code

题解见徐持衡《浅谈几类背包问题》

转载于:https://www.cnblogs.com/p0ny/p/6785528.html

[codevs1378]选课相关推荐

  1. 新生选课系统使用指南

    建议选用IE6或者IE7浏览器. 打开浏览器,地址栏输入202.200.112.200, 或者202.200.112.202, 或者202.200.112.210.按回车键. 输入学号和身份证号(如果 ...

  2. python123注册需要输入真实姓名和学校吗_python-----作业完成--学校选课系统

    选课系统: 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3. ...

  3. Java项目:网上选课系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 系统分为三个角色.最高权限管理员,学生,教师,包括 学生管理,教师管理,课程管理,选课,退课,成绩查 询.,教学课程, ...

  4. 选课微信小程序开发 java

    1.使用技术 java springboot mysql hibernate 微信小程序 2.功能介绍 后台管理 学生管理 课程管理 类型管理 选课管理 操作中心 管理员中心 导入导出学生 微信小程序 ...

  5. 基于协同过滤算法实现选课推荐系统

    新版本教务管理系统 教务管理系统 选课功能 1.系统功能 1.用户账户管理 2.学生个人信息的查看与修改 3.学生的网上选课与课程的评分 4.教师个人信息的查看与修改 5.教师对学生课程评价结果的查看 ...

  6. 【每日DP】day 8、P2014 [CTSC1997]选课(树形DP(树形背包)模板)难度⭐⭐⭐

    P2014 [CTSC1997]选课 题意为选一门课前要看它是否有前提条件:即选了一门主课才能选 "副科",所以可以树形背包来做. 注意是不能用分组背包来做,因为这道题附件有很多个 ...

  7. 清华大数据能力提升项目《数据分析方法》选课开始 !(附旁听名额)

    大数据背景下,信息类专业人才在各个行业的需求量巨大的同时,也在综合能力上提出了新的要求,不仅需要掌握对大数据进行高效处理的工具和平台搭建.分析和处理的理论方法,而且需要数据人才对行业知识的了解及应用. ...

  8. 新课程网上选课系统V1.0—适用于中小学校本课程选课、选修课选课

    学校要开设选修课,人工选课实施了两年,耗时耗力,于是打算用网上选课,在网上搜索了一番,没多少实用的,有一个网上用的比较多的,功能太简单了,于是打算自己开发一个,功能参考了部分学校的功能,也有基于Aja ...

  9. 基于SSM选课信息管理系统

    项目编号:KS006 运行环境     jdk8+tomcat8+mysql5.6+IntelliJ IDEA+maven   项目技术     spring+spring mvc+mybatis+j ...

最新文章

  1. c语言统计输入文本不同字母单词数,【C语言统计不同单词个数编写一个程序,输入一个句子,然后统计-查字典问答网...
  2. 高级转录组分析和R数据可视化第11期(课程推迟,可先报名,时间另行告知)
  3. 2014年年度工作总结--IT狂人实录
  4. vue2.0 配置 选项 属性 方法 事件 ——速查
  5. 全球超算500强榜单更新:美国Summit居首,中国上榜227台
  6. myeclipse添加使用hibernate框架详解
  7. java 矩阵求逆_java实现的顺时针/逆时针打印矩阵操作示例
  8. es文件浏览器自动上传ftp服务器,es文件浏览器访问ftp服务器
  9. 档案信息服务器配置方案,档案馆档案信息化系统建设方案.doc
  10. Docker使用中遇到的问题
  11. 程序和计划任务管理( 查看进程ps,控制进程,终止命令进程,top命令,at一次性任务,crontab周期任务)
  12. 使用根轨迹分析的动态补偿设计
  13. 【小程序】一个提醒休息的小程序,供大家娱乐
  14. Fildder之Mac安装
  15. webQQ协议分析2018.11.9
  16. MATLAB中神经网络工具箱的使用
  17. 无锁队列真的比有锁队列快吗【c++ linux后台开发】
  18. PHP使用 Redis 实现消息队列
  19. 炒作房地产对个人三观之扭曲
  20. 读《追风筝的人》有感

热门文章

  1. Qt中图像的显示与基本操作
  2. javascript下的数值型比较真的没有那么简单
  3. IDEA的postfix自定义,自定义postfix
  4. 安全测试需要考虑的测试点
  5. php 错误500排错,如何排查Web服务器HTTP ERROR 500的错误?
  6. 03-29 健壮性测试
  7. python图像处理模块_Python图像处理库PIL的ImageEnhance模块使用介绍
  8. 外部仓库_一键同步!CODING 现已支持导入 GitHub 仓库
  9. 请你努力成为一名优秀的软件工程师,拒绝做优秀的码农!
  10. 互联网躺平学 ,从后端到前端有多吃香?