开心的小明

时间限制:1000 ms  |  内存限制:65535 KB
难度:4
描述
小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的 房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早小明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N 元(可以等于N 元)的前提下,使每件物品的价格与重要度的乘积的总和最大。设第j 件物品的价格为v[j],重要度为w[j],共选中了k 件物品,编号依次为j1...jk,则所求的总和为:v[j1]*w[j1]+..+v[jk]*w[jk]请你帮助金明设计一个满足要求的购物单.
输入
第一行输入一个整数N(0<N<=101)表示测试数据组数
每组测试数据输入的第1 行,为两个正整数,用一个空格隔开:
N m
(其中N(<30000)表示总钱数,m(<25)为希望购买物品的个数。)
从第2 行到第m+1 行,第j 行给出了编号为j-1
的物品的基本数据,每行有2 个非负整数
v p
(其中v 表示该物品的价格(v≤10000),p 表示该物品的重要度(1~5))
输出
每组测试数据输出只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的
最大值(<100000000)
样例输入
  1. 1
  2. 1000 5
  3. 800 2
  4. 400 5
  5. 300 5
  6. 400 3
  7. 200 2
样例输出
  1. 3900
    ac代码:
  1. #include<stdio.h>
  2. #include<string.h>
  3. #define maxn 30
  4. #define maxm 30100
  5. int main()
  6. {
  7. int n,m,T,i,j;
  8. int v[maxn],p[maxn],opt[maxm];
  9. scanf("%d",&T);
  10. while(T--)
  11. {
  12. memset(opt,,sizeof(opt));
  13.  
  14. scanf("%d %d",&n,&m);
  15. for(i=;i<=m;i++)
  16. scanf("%d %d",&v[i],&p[i]);
  17. for(i=;i<=m;i++)
  18. for(j=n;j>=v[i];j--)
  19. {
  20. int t=opt[j-v[i]]+v[i]*p[i];
  21. if(opt[j]<t)
  22. opt[j]=t;
  23. }
  24. printf("%d\n",opt[n]);
  25. }
  26. return ;
  27. }
  1. 超时了;
  1. #include<stdio.h>
  2. #include<string.h>
  3. #define maxn 30
  4. #define maxm 30100
  5. int main()
  6. {
  7. int n,m,T,i,j;
  8. int v[maxn],p[maxn],opt[maxm];
  9. scanf("%d",&T);
  10. while(T--)
  11. {
  12. memset(opt,,sizeof(opt));
  13. scanf("%d %d",&n,&m);
  14. for(i=;i<=n;i++)
  15. opt[i]=;
  16. for(i=;i<=m;i++)
  17. scanf("%d %d",&v[i],&p[i]);
  18. for(i=;i<=m;i++)
  19. for(j=n;j>=;j--)
  20. if(j-v[i]>= && opt[j-v[i]]>= && (opt[j-v[i]]+v[i]*p[j])>=opt[j])
  21. opt[j]=opt[j-v[i]]+v[i]*p[i];
  22. printf("%d\n",opt[n]);
  23. }
  24. return ;
  25. }
  1.  

ny49 开心的小明的更多相关文章

  1. nyoj 49 开心的小明

    开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...

  2. NYoj_49开心的小明

    开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他 ...

  3. nyoj 题目49 开心的小明

    开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...

  4. nyoj_49_开心的小明_201403161133

    开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...

  5. 开心的小明(南阳oj49)(01背包)

    开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 小明今天非常开心.家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间.更让他高兴的是,妈妈 ...

  6. 1084: 开心的小明(dengdengoj)

    题目描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”.今 ...

  7. NYOJ 49 开心的小明(01背包问题)

    时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 小明今天非常开心.家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间.更让他高兴的是.妈妈昨天对他说: ...

  8. nyoj开心的小明

    这个问题是01背包,而对于编程之美那道是完全背包问题,在编程之美中也有一个0,1背包问题. 而且是容量是小于等于,不是等于,对于是否等于,在初始化参数时候不一样,不小于全部初始化为0,恰好等于,初始化 ...

  9. nyoj49 开心的小明 01背包

    思路:dp(i, j)表示用金钱j去买前i个物品能得到的最大价值.转移方程dp(i, j) = max{dp(i-1, j), dp(i-1, j-p[i]) + p[i]*w[i]}. AC代码 # ...

随机推荐

  1. Android拍照+方形剪裁——附代码与效果图

    本文链接    http://blog.csdn.net/xiaodongrush/article/details/29173567 參考链接    http://stackoverflow.com/ ...

  2. Android 沉浸式状态栏的三种实现方式

    沉浸式状态栏 Google从android kitkat(Android 4.4)開始,给我们开发人员提供了一套能透明的系统ui样式给状态栏和导航栏,这种话就不用向曾经那样每天面对着黑乎乎的上下两条黑 ...

  3. KnockoutJS + My97DatePicker b

    如何将Knockoutjs和其他脚本库结合使用?这里给出一个Knockoutjs与my97datepicker配合使用的例子,例子中使用了ko的自定义绑定功能: ko.bindingHandlers. ...

  4. tar压缩解压

    把所有jpg文件和temp文件夹压缩到 jpg.tar.gz 压缩文件中 tar -czvf  jpg.tar.gz *.jpg  temp 把jpg.tar.gz 解压缩当前文件中 tar -xzv ...

  5. cocos2dx 3.2 解决输入框(TextField,TextFieldTTF) 中文乱码问题

    近期开发cocos2dx 项目,做一个小游戏.(个人喜欢用最新版本号) 没系统学习就是问题多多,遇到了非常多问题,比方全部的opengl api都必须在主线程中调用, 这让我在多线程载入方面吃了不少亏 ...

  6. HDUOJ --2544最短路(基础)

    输入包括多组数据.每组数据第一行是两个整数N.M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几 ...

  7. Java IDE选择,常用Java IDE排行榜

    Java IDE众多,java开发主要用.最多用.国内较流行.本人常用的java IDE如下: 开发java大项目的IDE一般都用eclipse或netbeans(几乎我所在的公司都是在用eclips ...

  8. 32个Chrome 针对网页设计师和开发人员扩展

    http://zmingcx.com/32-chrome-web-designers-and-developers-to-expand.html

  9. PostgreSQL与MySQL常用命令比较[转]

    PostgreSQL与MySQL常用命令比较 原文链接: http://www.phpwell.com/?p=174 PostgreSQL MySQL 服务启动:1)#service postgres ...

  10. JSP开发中对jstl的引用方式(标签库引用)

    创建标签库引用文件taglibs.inc 一 采用本地标签库的taglibs.inc文件 <%--struts库标签 --%> <%@ taglib uri="/WEB-I ...