开心的小明(南阳oj49)(01背包)
开心的小明
- 描写叙述
- 小明今天非常开心。家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间须要购买哪些物品,怎么布置,你说了算。仅仅要不超过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
1000 5
800 2
400 5
300 5
400 3
200 2 - 例子输出
-
3900
-
/*还是01背包问题,做的时候仅仅须要将物品价钱和重要度相乘,再套模板就可以*/
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int test,i,j,n,m;
int a[28],b[28],dp[30002];
scanf("%d",&test);
while(test--)
{
scanf("%d %d",&n,&m);
memset(dp,0,sizeof(dp));
for(i=1;i<=m;i++)
{
scanf("%d %d",&a[i],&b[i]);
}
for(i=1;i<=m;i++)
{
for(j=n;j>=a[i];j--)//注意这个循环中j>=a[i];
dp[j]=max(dp[j],dp[j-a[i]]+a[i]*b[i]);
}
printf("%d\n",dp[n]);
}
return 0;
}
开心的小明(南阳oj49)(01背包)的更多相关文章
- 洛谷 P1060 开心的金明【DP/01背包】
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就 ...
- nyoj 49 开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...
- NYoj_49开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他 ...
- nyoj_49_开心的小明_201403161133
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...
- ny49 开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他 ...
- nyoj 题目49 开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...
- NYOJ 49 开心的小明(01背包问题)
时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 小明今天非常开心.家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间.更让他高兴的是.妈妈昨天对他说: ...
- nyoj 49-开心的小明(动态规划, 0-1背包问题)
49-开心的小明 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:7 submit:11 题目描述: 小明今天很开心,家里购置的新房就要领钥匙了,新房 ...
- 1084: 开心的小明(dengdengoj)
题目描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”.今 ...
随机推荐
- pl/sql sql窗口允许输出和允许变量替换
pl/sql sql窗口允许输出和允许变量替换 允许输出:类似在命令窗口中输入的 setserveroutput on; 允许变量替换:如果点击了这个,类似于执行 set define off命令 在 ...
- 《UML精粹》第三章 -类图的基本概念
第三章 类图:基本概念 类图可用来描写叙述系统中各种对象的类型.也可描绘出对象间各种各样的静态关系.此外.类图中也能够秀出类的性质(property)与操作(operation),以及可应用到对象间连 ...
- ZOJ 3633 Alice's present RMQ
Alice's present Description As a doll master, Alice owns a wide range of dolls, and each of them ha ...
- 派生类地址比基类地址少4(CDerived对象的起始地址存放的是虚表指针vptr,也就是子类的第一项内容。接下来的是基类的成员变量,接下来再是自身的成员变量)
大家对虚表并不陌生,都知道每个含有虚函数的类对象都有1个虚指针,但是在现实使用中,却总是因为这而调试半天,才发现原来是虚指针惹的祸.我这几天在调试代码时候也中招了,我的问题是这样的,如下图,CTree ...
- 编译Redis系统提示缺少gcc,可以使用yum进行安装:
yum -y install gcc yum -y install gcc-c++ yum install make -- 或者 yum groupinstall "Development ...
- Redis学习笔记(四) 基本命令:String操作
原文链接:http://doc.redisfans.com/string/index.html append key value 将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的 ...
- 请求测试——Fiddler2工具(可以测试POST和Get)
使用参考:http://jingyan.baidu.com/article/dca1fa6fa07000f1a44052f6.html 发送POST请求的时候,需要填写发送类型: 发送JSON格式填写 ...
- JavaScript实现乘法表
JavaScript实现乘法表 <script type="text/javascript"> function c(n,m) { ...
- DateUtil时间工具类
package utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util. ...
- Java标识符规范
1.标识符用来定义包名,类名,方法名,变量名,常量名. 2.标识符必须由字母.下划线.$符号组成,不能以数字开头.不能是Java中的保留关键字.