1267: Cafeteria [DP]

时间限制: 1 Sec 内存限制:
128 MB

提交: 76 解决:
31 统计

题目描述

Nanae把饥肠辘辘的josnch带去一家自助餐厅,面对面前眼花缭乱的美味josnch呆住了。

假设有N种食物,每种食物只有一样,而且每种食物有对应的体积Wi (1 <= Wi <= 400),食用每一种食物都能增加对应的愉悦值Di(1 <= Di <= 100).

现在已知josnch肚子的容量为M(1 <= M <= 12,880),现在假设josnch足够聪明,请问他如何选择能在可接受的范围内达到愉悦值最大。

输入

第一行输入两个整数,N和M。

第二行到第N+1行输入每行两个整数,Wi 和 Di ,分别代表 第i件物品的体积和所能带来的愉悦值。

输出

输出一个整数,也就是在最佳选择下的愉悦值。

样例输入

  1. 4 6
  2. 1 4
  3. 2 6
  4. 3 12
  5. 2 7

样例输出

  1. 23

解题思路:01背包更新数组之后,找到数组中的最大值输出(可以想一下为什么使用01背包之后还需要求数组中的最大值?)

代码如下:

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<math.h>
  4. #include<ctype.h>
  5. #include<stdlib.h>
  6. #include<queue>
  7. #include<algorithm>
  8. #define N 13000
  9. using namespace std;
  10. int M[13000],W[13000],D[13000];
  11. int main()
  12. {
  13. int n,m,i,j,maxx;
  14. while(~scanf("%d%d",&n,&m)){
  15. memset(M,0,sizeof(M));
  16. for(i=0;i<n;i++){
  17. scanf("%d %d",&W[i],&D[i]);
  18. }
  19. for(i=0;i<n;i++){
  20. for(j=m;j>=W[i];j--){
  21. M[j]=max(M[j],M[j-W[i]]+D[i]);
  22. }
  23. }
  24. maxx=0;
  25. for(i=0;i<=m;i++){
  26. if(maxx<M[i])
  27. maxx=M[i];
  28. }
  29. printf("%d\n",maxx);
  30. }
  31. return 0;
  32. }

hpu 1267 Cafeteria (01背包)的更多相关文章

  1. UVALive 4870 Roller Coaster --01背包

    题意:过山车有n个区域,一个人有两个值F,D,在每个区域有两种选择: 1.睁眼: F += f[i], D += d[i] 2.闭眼: F = F ,     D -= K 问在D小于等于一定限度的时 ...

  2. POJ1112 Team Them Up![二分图染色 补图 01背包]

    Team Them Up! Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7608   Accepted: 2041   S ...

  3. Codeforces 2016 ACM Amman Collegiate Programming Contest A. Coins(动态规划/01背包变形)

    传送门 Description Hasan and Bahosain want to buy a new video game, they want to share the expenses. Ha ...

  4. 51nod1085(01背包)

    题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1085 题意: 中文题诶~ 思路: 01背包模板题. 用dp[ ...

  5. *HDU3339 最短路+01背包

    In Action Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. codeforces 742D Arpa's weak amphitheater and Mehrdad's valuable Hoses ——(01背包变形)

    题意:给你若干个集合,每个集合内的物品要么选任意一个,要么所有都选,求最后在背包能容纳的范围下最大的价值. 分析:对于每个并查集,从上到下滚动维护即可,其实就是一个01背包= =. 代码如下: #in ...

  7. POJ 3624 Charm Bracelet(01背包)

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 34532   Accepted: 15301 ...

  8. (01背包变形) Cow Exhibition (poj 2184)

    http://poj.org/problem?id=2184   Description "Fat and docile, big and dumb, they look so stupid ...

  9. hdu3339 In Action(Dijkstra+01背包)

    /* 题意:有 n 个站点(编号1...n),每一个站点都有一个能量值,为了不让这些能量值连接起来,要用 坦克占领这个站点!已知站点的 之间的距离,每个坦克从0点出发到某一个站点,1 unit dis ...

随机推荐

  1. linux下安装与运行docker

    写者环境: 1.lsb_release -a hello@hello:~$ lsb_release -aNo LSB modules are available.Distributor ID: Ubu ...

  2. BZOJ3300: [USACO2011 Feb]Best Parenthesis 模拟

    Description Recently, the cows have been competing with strings of balanced  parentheses and compari ...

  3. 【Coursera】Security Introduction -Summary

    对这门课程的安全部分进行一个小结. 往期随笔 第八周第一节 第八周第二节 第九周第一节 第九周第二节 前言:为什么互联网要提及安全 因为security牵扯到我们每一个人,有人每时每刻都想着要偷取别人 ...

  4. Cocos2d-x学习笔记(三)main方法

    0. UNREFERENCED_PARAMETER(X)避免编译器关于未引用参数的警告. 下边代码用于屏蔽单个函数的警告: #pragma warning( push ) #pragma warnin ...

  5. R6

    RC 的加强版是 R6 , R6 是一个扩展包,能够实现支持公共和私有字段与方法的更有效的引用类,还有一些其他强大的功能.运行以下代码安装这个包:install.packages("R6&q ...

  6. DrawDibDraw__ZC测试

    ZC: 先把 自己尝试成功的代码 记录下来,不要 弄没了之后 又忘了怎么弄... ZC: 代码 有点乱,没整理.没写 哪些是 原来MFC里面的 哪些是我自己写的,参考上一篇文章来看吧 1.VC6 的一 ...

  7. marquee 跑马灯公告

    1.原始 marquee 2.自定义 marquee .tops { color: #fff; height: 23px; margin: 0 0 0 20px; min-height: 23px; ...

  8. Fragment 的生命周期及使用方法详解

    Fragment 的基础知识介绍 1.1 概述 1.1.1 特性 By hebang32624 Fragment 是 activity 的界面中的一部分或一种行为.可以把多个 Fragment 组合到 ...

  9. C# Interface中的属性

    只能写get,和set,到具体类实现的时候才确定get的是哪个字段的值,set的是哪个字段的值.

  10. 总是有个yumBackend.py阻止我用yum进行更新

    [Another app is currently holding the yum lock; waiting for it to exit...] 上网查了,好像是说帮我安个桌面图标的进程. 估计是 ...