HDU 3496 Watch The Movie(看电影)

Time Limit: 1000MS   Memory Limit: 65536K

【Description】

【题目描述】

New semester is coming, and DuoDuo has to go to school tomorrow. She decides to have fun tonight and will be very busy after tonight. She like watch cartoon very much. So she wants her uncle to buy some movies and watch with her tonight. Her grandfather gave them L minutes to watch the cartoon. After that they have to go to sleep.

DuoDuo list N piece of movies from 1 to N. All of them are her favorite, and she wants her uncle buy for her. She give a value Vi (Vi > 0) of the N piece of movies. The higher value a movie gets shows that DuoDuo likes it more. Each movie has a time Ti to play over. If a movie DuoDuo choice to watch she won’t stop until it goes to end.

But there is a strange problem, the shop just sell M piece of movies (not less or more then), It is difficult for her uncle to make the decision. How to select M piece of movies from N piece of DVDs that DuoDuo want to get the highest value and the time they cost not more then L.

How clever you are! Please help DuoDuo’s uncle.

新学期即将开始,DuoDuo明天就要去学校了。想了想之后忙碌的生活,她还是决定在今晚找找乐子。DuoDuo十分喜欢欧美动画。因此她希望她叔叔买些回来晚上一起看。她爷爷却给她限定L分钟的时间看动画,之后必须去睡觉。

DuoDuo从1到N列了N部电影。对于她的最爱,统统都想要。她给出了对这N部电影的好感度Vi(Vi > 0)。数值越高,DuoDuo越喜欢。每部电影时长为Ti。DuoDuo一旦开始观看,就势必要看完。

但是奇葩的是,这家商店只出售M部影片(不多不少),这可难坏了她叔叔。如何才能在N部DuoDuo想要的DVDs中挑M部并且在不超过L的时间内收获最多的好感度?

聪明如你!定可助DuoDuo的叔叔一臂之力。

【Input】

【输入】

The first line of the input file contains a single integer t (1 ≤ t ≤ 10), the number of test cases, followed by input data for each test case:

The first line is: N(N <= 100),M(M<=N),L(L <= 1000)

N: the number of DVD that DuoDuo want buy.

M: the number of DVD that the shop can sale.

L: the longest time that her grandfather allowed to watch.

The second line to N+1 line, each line contain two numbers. The first number is the time of the ith DVD, and the second number is the value of ith DVD that DuoDuo rated.

输入数据的第一行是一个整数t(1 ≤ t ≤ 10),表示测试用例的数量,随后的每个测试用例:

第一行:N(N <= 100),M(M<=N),L(L <= 1000)

N:DuoDuo想买的DVD数量。

M:商店可出售的DVD数量。

L:她爷爷运行的最长观看时间。

第二到N+1行,每行两个数。第一个数字表示第i个DVD的时长,第二个数字表示DuoDuo对其的好感度。

【Output】

【输出】

Contain one number. (It is less then 2^31.)

The total value that DuoDuo can get tonight.

If DuoDuo can’t watch all of the movies that her uncle had bought for her, please output 0.

包含一个数字。(小于2^31。)

DuoDuo今晚收获的好感度。

如果DuoDuo不能看完她叔叔所买的电影则输出0。

【Sample Input - 输入样例】

【Sample Output - 输出样例】

1

3 2 10

11 100

1 2

9 1

3

【题解】

  二维01背包

  (之前为了看(qiang)着(po)爽(zheng)用vector来写,写着写着代码量比预期越来越高,于是默默地放弃了……)

  最后的好感度V太大,不过时间T和DVD的数量N都不大,可以用来当坐标轴。

  考虑到T或N在某一状态都可能相同,因此T与N都应该成为坐标轴,其值为V。

  这么看来就是一个二维的01背包了。 V[T][N]或V[N][T]怎么开都行。

【代码 C++】

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #define time 1005
 5 #define cdSUM 105
 6 int main(){
 7     int ts, i, j, t, v, n, m, tLimt, cd[cdSUM][2], value[time][cdSUM];
 8     scanf("%d", &ts);
 9     while (ts--){
10         memset(value, 0, sizeof(value));
11         scanf("%d%d%d", &n, &m, &tLimt);
12         while (n--){
13             scanf("%d%d", &t, &v);
14             for (i = tLimt - 1; i > 0; --i){
15                 for (j = 0; j < m; ++j){
16                     if (value[i][j] && i + t <= tLimt){
17                         value[i + t][j + 1] = std::max(value[i][j] + v, value[i + t][j + 1]);
18                     }
19                 }
20             }
21             value[t][1] = std::max(v, value[t][1]);
22         }
23         for (i = v = 0; i <= tLimt; ++i) v = std::max(v, value[i][m]);
24         printf("%d\n", v);
25     }
26     return 0;
27 }

转载于:https://www.cnblogs.com/Simon-X/p/5365694.html

HDU 3496 Watch The Movie(看电影)相关推荐

  1. AI看电影看哭了...MIT科学家正在教AI感受电影中的喜怒哀乐

    翻译 | AI科技大本营(rgznai100) 参与 | 么广忠 虽然我们都知道人工智能(AI)特别火,但AI究竟能做什么了不起的事情呢?要是问AI能不能写出一本畅销的书,目前的答案是不能,显然AI目 ...

  2. 有一次去校内的某个礼堂看电影,在门口有个长得很斯文的陌生人一脸神秘地跟我说:师弟,能不能进去之后,把电影票从厕所的气窗扔出来给我……...

    有一次去校内的某个礼堂看电影,在门口有个长得很斯文的陌生人一脸神秘地跟我说:师弟,能不能进去之后,把电影票从厕所的气窗扔出来给我-- 我说呸!你这点花花肠子人家早就料到了,门口的大妈要把票撕破才能进去 ...

  3. 如何解决和异地女朋友一起看电影的需求?(内附源码)

    一.这是一件悲伤的故事 我是一名程序员,我和我的女友是异地恋,so sad!!! 一次视频时,她突然来了一句:"我们已经很久没有一起看电影了吧......" "呃...好 ...

  4. 保益悦听怎么开盲人模式_盲人看电影???是的!盲人看电影!!!

    太!异!想!天!开!了!是谁提出的这个想法,竟然想组织盲人看电影这不是拿刀戳心窝子嘛! 但是!这异想天开的事情竟让一位年近七旬的盲人蒋鸿源办成了!还获得了大批"同盲中人"的夸奖,甚 ...

  5. 开始ubuntu 14.04 的装X模式---终端模式下中文输入,听歌,上irc 开启framebuffer看电影 截图...

    先上图吧 卡卡的全是在tty1 下的操作,看电影,听歌,截图 ,看图  ,上irc 等等,相当适合在小白面前装屁! 需要安装的软件: 为了能正常显示中文:安装fbterm sudo apt-get i ...

  6. 怎么跟女生看电影牵手技巧方法

    现在人们的娱乐生活越来越丰富,很多男生在约会时喜欢带女生去看电影.但是很有时候只是看电影远远不够,在电影院如果拉不到女生的小手,这个约会不就是白费了吗?那么怎么和女生看电影牵手技巧有哪些呢? 1.尽可 ...

  7. 苹果cms v8 漫漫看电影模板 自适应手机移动端

    简介: 苹果cms v8 漫漫看电影模板 自适应手机移动端 网盘下载地址: http://kekewl.cc/dG6LC2i1VpA0 图片:

  8. Zjoi2011 看电影

    最近在学习一些概率的东西.. 一个随机试验称为 Laplace 试验,当且仅当它满足如下两个条件: (ⅰ) 试验结果 (样本点) 的个数是有限的.(Ω 是有限集) (ⅱ) 任意两个基本事件的概率均相等 ...

  9. 用计算机听音乐和看电影的ppt,五年级下册信息技术课件-第六课 用计算机听音乐和看电影 川教版 (共13张PPT)...

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

最新文章

  1. PhpStorm+Homestead+Xdebug调试Laravel
  2. Dialog的使用(一):用AlertDialog提示
  3. Java中的主类概念以及public static void main方法的分析
  4. elementui vue的html随机点名器软件网页版源码1.1
  5. poj2955 Brackets (区间dp)
  6. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(9/E) - 比特位操控指令(BMI1 BMI2)
  7. 活动报名 | 2017无人驾驶智能车Hackathon挑战赛
  8. puppet 横向扩展(三)
  9. 导出已安装的插件_明明flash插件已安装,但是网页依然不能正常显示的解决办法...
  10. FastDFS单机、单节点和多节点集群部署文档
  11. 拓端tecdat|R语言使用随机技术差分进化算法优化的Nelson-Siegel-Svensson模型
  12. 【OSPF基础(链路状态路由协议、ospf基础术语、ospf协议报文类型、ospf三大表项、邻居和邻接关系、ospf网络类型、DR与BDR、ospf基本配置)】-20211210、13、14
  13. Heka的一些计算过程数据存放目录
  14. 动画制作后期那点事——调色
  15. [19]python uniform() 函数
  16. 阿里巴巴起诉迪拜“阿里巴巴币”商标侵权:别让人误以为阿里在发币
  17. 服务器i文件夹,IBM i上http server实用技巧之一:访问IBM i多文件系统
  18. 狂雨小说内核26W数据打包带7条可用热门站采集规则
  19. 2022 ICPC 南京站
  20. 想知道什么换发型软件好吗

热门文章

  1. 宠物购物领养社区app(IDEA,SpringBoot,SSM,MySQL)+全套视频教程
  2. 机器学习(八)SVM支持向量机
  3. [python,2018-06-25] 高德纳箭号表示法
  4. python爬取网店数据_如何爬虫天猫店铺数据python
  5. access身份证号掩码_access中怎么设置掩码控制数字范围
  6. android 第三方扇形图,Android扇形图(饼状图)
  7. 逻辑回归 - 理论篇
  8. Python实现带不等式约束的NSGAII算法解决cec2021中的RCM01问题
  9. 05-SA8155 QNX Hypervisor 之 Pass-through直通模式
  10. oraclenbsp;命名规范