4149:课程大作业
总时间限制: 1000ms 内存限制: 65536kB
描述
小明是北京大学信息科学技术学院三年级本科生。他喜欢参加各式各样的校园社团。这个学期就要结束了,每个课程大作业的截止时间也快到了,可是小明还没有开始做。每一门课程都有一个课程大作业,每个课程大作业都有截止时间。如果提交时间超过截止时间X天,那么他将会被扣掉X分。对于每个大作业,小明要花费一天或者若干天来完成。他不能同时做多个大作业,只有他完成了当前的项目,才可以开始一个新的项目。小明希望你可以帮助他规划出一个最好的办法(完成大作业的顺序)来减少扣分。

输入
输入包含若干测试样例。
输入的第一行是一个正整数T,代表测试样例数目。
对于每组测试样例,第一行为正整数N(1 <= N <= 15)代表课程数目。
接下来N行,每行包含一个字符串S(不多于50个字符)代表课程名称和两个整数D(代表大作业截止时间)和C(完成该大作业需要的时间)。
注意所有的课程在输入中出现的顺序按照字典序排列。
输出
对于每组测试样例,请输出最小的扣分以及相应的课程完成的顺序。
如果最优方案有多个,请输出字典序靠前的方案。
样例输入
2
3
Computer 3 3
English 20 1
Math 3 2
3
Computer 3 3
English 6 3
Math 6 3
样例输出
2
Computer
Math
English
3
Computer
English
Math
提示
第二个测试样例, 课程完成顺序Computer->English->Math 和 Computer->Math->English 都会造成3分罚分, 但是我们选择前者,因为在字典序中靠前.

问题链接:Bailian4149 课程大作业
问题简述:(略)
问题分析:动态规划问题,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4149 课程大作业 */#include <bits/stdc++.h>using namespace std;const int N = 15;
char name[N][50 + 1];
int d[N], c[N], sum[1 << (N + 1)], dp[1 << (N + 1)];
string ans[1 << (N + 1)];int main()
{int t, n;scanf("%d", &t);while (t--) {scanf("%d", &n);for (int i = 0, i2 = 1; i < n; i2 <<= 1, i++)scanf("%s%d%d", name[i], &d[i], &c[i]);int num = 1 << n;memset(sum, 0, sizeof sum);for (int i = 1; i < num; i++)for (int j = 0; j < n; j++)if ((i >> j) & 1) sum[i] += c[j];memset(dp, 0x3f, sizeof dp);    // 最大值dp[0] = 0;for (int i = 1; i < num; i++)for (int j = 0; j < n; j++) {int x = 1 << j;if( (i>>j) & 1 && dp[i] >= dp[i ^ x] + max(sum[i]- d[j], 0)) {if(dp[i] > dp[i ^ x] + max(sum[i] - d[j], 0)) {dp[i] = dp[i ^ x] + max(sum[i] - d[j],0);ans[i] = ans[i ^ x] + (char)(j + '0');} else if(ans[i] > ans[i ^ x] + (char)(j + '0'))ans[i] = ans[i ^ x] + (char)(j + '0');}}printf("%d\n", dp[num - 1]);string c = ans[num - 1];for (int i = 0; c[i]; i++)printf("%s\n", name[c[i] - '0']);}return 0;
}

Bailian4149 课程大作业【DP】相关推荐

  1. HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码...

    HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...

  2. HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码

    HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...

  3. 浙江万里学院期末计算机网络,(浙江万里学院云计算基础课程大作业封面.doc

    (浙江万里学院云计算基础课程大作业封面 浙江万里学院云计算基础课程论文封面 教师填写: 得分 任课教师签名 年 月 日 学生填写: 姓名 学号 所在学院计算机与信息学院专业信息工程课程名称云计算基础? ...

  4. web网页设计期末课程大作业~超高仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript)...

    仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript) 关于HTML期末网页制作,大作业A+水平 ~游戏网页作业HTML+CSS+JavaScript实现,共有游戏首页 等页面! ...

  5. HTML网页设计期末课程大作业 :汽车网页——宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载

    HTML网页设计期末课程大作业 :汽车网页--宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载 临近期末, 你还在为HTML网页设计结课作 ...

  6. 24HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程 网页规

    HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...

  7. HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规

    HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...

  8. 好家伙!清华电子系大一暑假Python课程大作业上知乎热榜!竟是个CV任务

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 编辑:Amusi  |  来源:知乎 https://www.zhihu.com/question/4719 ...

  9. 《信息检索》课程大作业 实现一个本地搜索引擎

    <先锋检索>--开发文档 也是本人的第一篇博客 这篇博客是本人<信息检索>课程大作业的开发文档,使用了larbin(网络爬虫)+xunsearch(搜索引擎解决方案)的解决方案 ...

最新文章

  1. C#调用C++类(以COM组件的形式)
  2. linux安装 中文乱码怎么解决方法,Linux安装GBK/GB2312程序显示乱码的五种解决方法...
  3. 信息学奥赛一本通(1111:不高兴的津津)
  4. bcb6通过https接口post数据_Python+Requests+Pytest+YAML+Allure实现接口自动化
  5. 墨菲定律 -- 笔记
  6. python爬虫抖音音浪_【Python爬虫】抖音去水印
  7. Linux 下 Weblogic 的安装 、配置以及发布
  8. mysql 随机函数 效率_MySQL 随机函数获取数据速度和效率分析
  9. 运营进阶:打造好文案的万能公式
  10. [从零开始学习FPGA编程-6]:快速入门篇 - 操作步骤1 - 国内外FPGA主要厂家及其主要产品系列、开发工具
  11. JScriptJQuery学习
  12. 网线有网,路由器连接之后没网,解决办法
  13. 颜体html标签,颜体楷书笔法32式详解,一定不能错过!(超级干货)
  14. lol客户端打开之后是wegame并且卡住
  15. Python实战项目总结
  16. Jquery之遍历元素
  17. Hive之配置和使用LZO压缩
  18. 遥遥领先影像组件:dicomobjects.ocx
  19. 【00】processing-历史(中文)
  20. idea 使用try/catch 快捷方法(Surround With)(亲测有效)

热门文章

  1. python中figure函数_Python figure参数及subplot子图绘制代码
  2. Arcgis javascript那些事儿(十九)——地图标注添加
  3. android开发那些事儿(三)--manifest文件中uses-sdk和project中target详解
  4. 地图整饰-框架与格网
  5. Silverlight 中的通信安全访问策略
  6. 《高级着色语言HLSL入门》系列文章
  7. JavaScript-bind-call-apply改变this指向
  8. commons-fileupload 上传图片路径到mysql_上传图片到服务器并将图片路径保存到数据库...
  9. Java求一个数的质因数
  10. 大数据可视化dataease(有所帮助)