ssl2294-打包【dp练习】
生活随笔
收集整理的這篇文章主要介紹了
ssl2294-打包【dp练习】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Description
你現(xiàn)在拿到了許多的禮物,你要把這些禮物放進(jìn)袋子里。你只有一個最多裝下V 體積物品的袋子,你不能全部放進(jìn)去。你也拿不動那么重的東西。你估計你能拿的最大重量為 G。現(xiàn)在你了解了每一個物品的完美值、重量和體積,你當(dāng)然想讓袋子中裝的物品的完美值總和最大,你又得計劃一下了。
Input
第一行:G 和 V 表示最大重量和體積。
第二行:N 表示拿到 N 件禮物。
第三到N+2行:每行3個數(shù) Ti Gi Vi 表示各禮物的完美值、重量和體積
Output
輸出共一個數(shù),表示可能獲得的最大完美值。
Sample Input
6 5
4
10 2 2
20 3 2
40 4 3
30 3 3
Sample Output
你現(xiàn)在拿到了許多的禮物,你要把這些禮物放進(jìn)袋子里。你只有一個最多裝下V 體積物品的袋子,你不能全部放進(jìn)去。你也拿不動那么重的東西。你估計你能拿的最大重量為 G。現(xiàn)在你了解了每一個物品的完美值、重量和體積,你當(dāng)然想讓袋子中裝的物品的完美值總和最大,你又得計劃一下了。
Input
第一行:G 和 V 表示最大重量和體積。
第二行:N 表示拿到 N 件禮物。
第三到N+2行:每行3個數(shù) Ti Gi Vi 表示各禮物的完美值、重量和體積
Output
輸出共一個數(shù),表示可能獲得的最大完美值。
Sample Input
6 5
4
10 2 2
20 3 2
40 4 3
30 3 3
Sample Output
50
解題思路
做了那么題目,這道題一看就是2維費用,然后就可以翻出以前代碼來抄之類的。咳咳!然后就可以如魚得水水到渠成誠心至致智勇雙全全心全意認(rèn)賊作父互相傷害還能咋地的做出來了。╭(╯^╰)╮
代碼
#include<cstdio>
#include<iostream>
using namespace std;
int n,pg,raun,p[381],r[381],c[381],s[381],f[381][381];
int main()
{
scanf("%d%d%d",&pg,&raun,&n);
for (int i=1;i<=n;i++)
{
?scanf("%d%d%d",&c[i],&p[i],&r[i]);
}
//以上輸入不解釋
for (int i=1;i<=n;i++)
?for (int pi=pg;pi>=p[i];pi--)//循環(huán)pg值
? ?for (int ri=raun;ri>=r[i];ri--)//循環(huán)raun值
? ? ? f[pi][ri]=max(f[pi][ri],f[pi-p[i]][ri-r[i]]+c[i]);
//求值
printf("%d",f[pg][raun]);//輸出
}
總結(jié)
以上是生活随笔為你收集整理的ssl2294-打包【dp练习】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 夸克搜索回应被罚 50 万:高度重视、诚
- 下一篇: 怎么设置光盘启动 如何设置光驱启动