【解题报告】[动态规划]RQNOJ PID2 / 开心的金明

原题地址:http://www.rqnoj.cn/problem/2

解题思路:背包问题。

状态转移方程:DP[i][j]=max(DP[i-v[j]][j-1]+p[j]*v[j],DP[i][j-1])

DP[i][j]表示最多话费i的钱,购买前j+1个物品所能达到的最大价值。

解题代码:

 1 #include<stdio.h>
2 #include<iostream>
3 #include<algorithm>
4 using namespace std;
5 int DP[30005][25];
6 int v[25];
7 int p[25];
8 int main()
9 {
10 int n,m,i,j;
11 scanf("%d%d",&n,&m);
12 for(i=0;i<m;i++)
13 {
14 scanf("%d%d",&v[i],&p[i]);
15 }
16 for(i=0;i<=n;i++)
17 {
18 if(i>=v[0]) DP[i][0]=v[0]*p[0];
19 else DP[i][0]=0;
20 }
21 for(j=1;j<m;j++)
22 {
23 for(i=0;i<=n;i++)
24 {
25 if(i>=v[j]) DP[i][j]=max(DP[i-v[j]][j-1]+p[j]*v[j],DP[i][j-1]);
26 else DP[i][j]=DP[i][j-1];
27 //if(DP[i][j]>=3900) {printf("dp[%d][%d]=%d\n",i,j,DP[i][j]);getchar();}
28 }
29 }
30 printf("%d\n",DP[n][m-1]);
31 return 0;
32 }

【解题报告】[动态规划]RQNOJ PID2 / 开心的金明,码迷,mamicode.com

时间: 2024-12-14 18:06:46

【解题报告】[动态规划]RQNOJ PID2 / 开心的金明的相关文章

RQNOJ PID2 / 开心的金明

题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”.今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元.于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要.他还从因特网上查到了每件物品的价格(都是整数元).他希望在不超过N 元(可以等于N 元)的前提下,使每件物品的价格与重要度的乘积的总和最大.

RQNOJ 2 开心的金明

一道基础的01背包,要是不明白可以自己搜一下背包九讲,自己刚开始数组开小了,题目看串了行,找了半天,小错还是要格外注意的. #include <iostream> #include <string.h> using namespace std; #include <set> int total[30000+10]; int v[100]; int p[100]; int main() { int money,n; while(cin>>money>&g

蓝桥杯-开心的金明

//蓝桥杯-算法训练 开心的金明 //评测结果 AC //动态规划 01背包 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int maxn = 30005; int main() { int N, m; scanf( "%d%d", &N, &m ); int f[maxn]; int v, w; memset

开心的金明(java)

[开心的金明]    金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”.今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元.于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要.他还从因特网上查到了每件物品的价格(都是整数元).他希望在不超过N 元(可以等于N 元)的前提下,使每件物品的价格与重要度的乘积

sicily 1342 开心的金明 (动规)

刷一下简单的背包问题 以下为代码: 1 //1342. 开心的金明 2 #include <iostream> 3 using namespace std; 4 5 #define MAX(a,b) a>b?a:b 6 7 int backpack(int w[], int v[], int n, int c) 8 { 9 //w表示重要度 10 //v表示价格 11 //c表示价格总量 12 int max[n+1][c+1]; 13 for (int j = 0; j <= c

【dp】开心的金明

开心的金明 来源:NOIP2006(普及组)第二题 [问题描述]     金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”.今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元.于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要.他还从因特网上查到了每件物品的价格(都是整数元).他希望在不超过N 元(可以

洛谷P1060——开心的金明

https://www.luogu.org/problem/show?pid=1060 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行".今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元.于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要.他还从因特网上查到了每件物品的价格(都是整数元).他

【NOIP2006】开心的金明

Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元.于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要.他还从因特网上查到了每件物品的价格(都是整数元).他希望在不超过N元(可以等于N元)的前提下,使每件物品的价格与重要度的乘积的总和最大.

codevs 1115 开心的金明

时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元.于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要.他还从因特网上查到了每件物品的价格(都是整数