1084: 开心的小明(dengdengoj)
题目描述
输入
每组测试数据输入的第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
#include<iostream>
using namespace std; int price[30];
int weight[30];
int record[30005];//记录不同金额下历史状态最大的价格与重要度乘积的总和 int max(int a, int b){
return a > b ? a : b;
}
/*
关键在于找出子问题,记录下不同金额下历史状态最大的价格与重要度乘积的总和
record[j] = max(record[j], record[j - price[i]] + price[i] * weight[i]);
动态规划求解的问题主要由四个特点:
1. 问题是求最优解
2. 整体问题的最优解依赖于各个子问题的最优解
3. 大问题分解成若干小问题,这些小问题之间还有相互重叠的更小的子问题
4. 从上往下分析问题,从下往上求解问题
*/
int dyproblem(int n,int m){
for (int i = 0; i <= n; i++){
record[i] = 0;
}
for (int i = 1; i <= m; i++){//对于每一件商品判断其是否应该选购
for (int j = n; j >= price[i]; j--){//在不同的剩余金额下是否应该购买此商品
record[j] = max(record[j], record[j - price[i]] + price[i] * weight[i]);
}
}
return record[n];
}
int main(){
int N;
cin >> N;
while (N--){
int n, m;//n--> total money,m-->the number of goods
cin >> n >> m;
for (int i = 1; i <= m; i++){
cin >> price[i] >> weight[i];
}
int total = dyproblem(n, m);
cout << total << endl;
}
return 0;
}
1084: 开心的小明(dengdengoj)的更多相关文章
- nyoj 49 开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...
- NYoj_49开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他 ...
- ny49 开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他 ...
- nyoj 题目49 开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...
- nyoj_49_开心的小明_201403161133
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...
- 开心的小明(南阳oj49)(01背包)
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 小明今天非常开心.家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间.更让他高兴的是,妈妈 ...
- NYOJ 49 开心的小明(01背包问题)
时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 小明今天非常开心.家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间.更让他高兴的是.妈妈昨天对他说: ...
- nyoj开心的小明
这个问题是01背包,而对于编程之美那道是完全背包问题,在编程之美中也有一个0,1背包问题. 而且是容量是小于等于,不是等于,对于是否等于,在初始化参数时候不一样,不小于全部初始化为0,恰好等于,初始化 ...
- 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代码 # ...
随机推荐
- 阿里云服务器配置SSL证书成功开启Https(记录趟过的各种坑)
环境: 阿里云云服务器 Windows Server 2008 标准版 SP2 中文版(趁1212优惠买的一年的水货配置) 阿里云购买的域名(已备案.已解析) 服务器:phpstudy:php5 ...
- css 清除浮动的几种方式
1.给浮动的元素的父级添加 overflow:hidden;属性 ul>不浮动 添加overflow:hidden; li>浮动 2.给浮动的元素的父级添加after伪类 ul:after ...
- 滴水穿石-10GUI
GUI 图形用户界面 1 Frame 窗体 package d10; //第一导入包 import java.awt.Frame; import java.awt.event.WindowAdapte ...
- Echo()、print()、print_r()区别
echo可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用.echo是php的内部指令,不是函数, ...
- P1036 选数 题解
题目链接https://www.luogu.org/problemnew/show/P1036 题目描述 已知 nnn 个整数 x1,x2,-,xnx_1,x_2,-,x_nx1,x2,-,xn ...
- SQLServer 常见高CPU利用率原因
1.缺失索引: USE AdventureWorks2014 SET STATISTICS TIME ON; SET STATISTICS IO ON ; SELECT per.FirstName,p ...
- 如何配置使用HTML在线编辑工具
如何配置使用HTML在线编辑工具 为了更好的.统一的编写统一简单易用的博客,决定采用TinyMCE工具.首先下载TinyMCE4.0包.文件目录如下: 其中, Plugins是插件目录,包括各种插件 ...
- python linux 源码安装Twisted
下载:1.首先找到需要的包访问:https://pypi.org/在搜索框中输入你要查找的包名,然后点击搜索2.选择要下载的包的版本,点击download files3.选择file Type为sou ...
- Servlet解决中文乱码问题
request.setCharacterEncoding("UTF-8"); 并且把这句话放在request.getParameter()之前
- 008 pandas介绍
一:介绍 1.官网 http://pandas.pydata.org/ 2.说明 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了 ...