1625 宝石项链 大视野评测
生活随笔
收集整理的這篇文章主要介紹了
1625 宝石项链 大视野评测
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Description
貝茜在珠寶店閑逛時,買到了一個中意的手鐲。很自然地,她想從她收集的 N(1 <= N <= 3,402)塊寶石中選出最好的那些鑲在手鐲上。對于第i塊寶石,它的重量為W_i(1 <= W_i <= 400),并且貝茜知道它在鑲上手鐲后能為自己增加的魅力值D_i(1 <= D_i <= 100)。由于貝茜只能忍受重量不超過M(1 <= M <= 12,880)的手鐲,她可能無法把所有喜歡的寶石都鑲上。 于是貝茜找到了你,告訴了你她所有寶石的屬性以及她能忍受的重量,希望你能幫她計算一下,按照最合理的方案鑲嵌寶石的話,她的魅力值最多能增加多少。
Input
* 第1行: 2個用空格隔開的整數(shù):N 和 M
* 第2..N+1行: 第i+1行為2個用空格隔開的整數(shù):W_i、D_i,分別為第i塊寶石 的重量與能為貝茜增加的魅力值
Output
* 第1行: 輸出1個整數(shù),表示按照鑲嵌要求,貝茜最多能增加的魅力值
Sample Input
4 61 4
2 6
3 12
2 7
輸入說明:
貝茜收集了4塊寶石,她能忍受重量最大為6的手鐲。
Sample Output
23輸出說明:
貝茜把除了第二塊寶石的其余所有寶石都鑲上手鐲,這樣她能增加
4+12+7=23的魅力值,并且所有寶石的重量為1+2+3 <= 6,同樣符合要求。
HINT
Source
http://www.lydsy.com/JudgeOnline/problem.php?id=1625
?
簡單的01背包
?
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 int main(){ 6 int f[100001]; 7 int n,m; scanf("%d%d",&n,&m); 8 for (int i=0;i<=m;i++) f[i]=0; 9 int w,v; 10 for (int i=1;i<=n;i++){ 11 scanf("%d%d",&w,&v); 12 for (int j=m;j>=w;j--) 13 f[j]=max(f[j],f[j-w]+v); 14 } 15 printf("%d",f[m]); 16 }?
轉(zhuǎn)載于:https://www.cnblogs.com/lztlztlzt/p/6244777.html
總結(jié)
以上是生活随笔為你收集整理的1625 宝石项链 大视野评测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [JavaScript]JS由来
- 下一篇: virt-v2v 使用指南