华师一附中OI组
标题:
P1794 装备运输
[打印本页]
作者:
admin
时间:
2018-6-29 18:28
标题:
P1794 装备运输
https://www.luogu.org/problemnew/show/P1794
题目描述
德国放松对英国的进攻后,把矛头指向了东边——苏联。1943年初,东线的战斗进行到白热化阶段。据可靠情报,90余万德国军队在库尔斯克准备发动浩大攻势。因此,朱可夫元帅要求你立即从远东的军工厂运输大量装备支援库尔斯克前线。列车司机告诉你,一趟列车最多可以容纳V体积的武器装备,但是你可能不能装满,因为列车承受不了那么大的重量,一趟列车最多可以承载C单位的重量。同时,军工厂仓库提供给你一份装备清单,详细记录了每件装备的体积、重量和火力。为了有效支援朱可夫元帅,你要找到一种方案,使得总火力值最大。
输入输出格式
输入格式:
第一行:V和G表示最大体积和重量。
第二行:N表示仓库有N件装备。
第三到N + 2行:每行3个数Ti Vi Gi表示各装备的火力值、体积和重量。
输出格式:
输出一个数,表示可能获得的最大火力值。
输入输出样例
输入样例#1:
6 5
4
10 2 2
20 3 2
40 4 3
30 3 3
输出样例#1:
50
说明
对于100%的数据,V,G,N≤500
作者:
Scorpio
时间:
2018-7-15 13:25
#include<iostream>
using namespace std;
int f[525][525],t[525],v[525],g[525];
int m,i,j,k,vv,gg;
int main()
{
cin>>vv>>gg>>m;
for(i=1;i<=m;i++)
cin>>t[i]>>v[i]>>g[i];
for(i=1;i<=m;i++)
for(j=vv;j>=v[i];j--)
for(k=gg;k>=g[i];k--)
f[j][k]=max(f[j-v[i]][k-g[i]]+t[i],f[j][k]);
cout<<f[vv][gg];
return 0;
}
复制代码
作者:
张笑宇
时间:
2018-7-28 15:35
#include<iostream>
using namespace std;
int maxv,maxm,n;///最大体积 质量,数量
int i,j,k;
const int mx=510;
int t[mx],v[mx],m[mx],dp[mx][mx];
int main()
{
cin>>maxv>>maxm>>n;
for (i=1;i<=n;i++) cin>>t[i]>>v[i]>>m[i];
for (i=1;i<=n;i++)
for (j=maxv;j>=v[i];j--)
for (k=maxm;k>=m[i];k--)
dp[j][k]=max(dp[j][k],dp[j-v[i]][k-m[i]]+t[i]);
cout<<dp[maxv][maxm];
return 0;
}
复制代码
作者:
张笑宇
时间:
2018-7-28 15:36
二维费用背包
作者:
黄煦喆
时间:
2018-7-29 10:04
#include<iostream>
using namespace std;
int G,V,n;
int w[501],v[501],dp[501][501],t[501];
int main()
{
cin>>V>>G;
cin>>n;
for(int i=1;i<=n;i++)cin>>t[i]>>v[i]>>w[i];
for(int i=1;i<=n;i++)
for(int j=V;j>=v[i];j--)
for(int k=G;k>=w[i];k--)
dp[j][k]=max(dp[j][k],dp[j-v[i]][k-w[i]]+t[i]);
cout<<dp[V][G];
return 0;
}
复制代码
作者:
zhwang
时间:
2018-7-29 20:15
#include<cstdio>
#include<algorithm>
using namespace std;
int f[501][501];
int V,G;
int n;
int h[501],v[501],m[501];
int main()
{
scanf("%d%d",&V,&G);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&h[i],&v[i],&m[i]);
}
for(int i=1;i<=n;i++)
{
for(int j=V;j>=v[i];j--)
{
for(int k=G;k>=m[i];k--)
{
f[j][k]=max(f[j][k],f[j-v[i]][k-m[i]]+h[i]);
}
}
}
printf("%d",f[V][G]);
return 0;
}
复制代码
突然发现自己只会写滚动了,好生尴尬啊
作者:
ZMQ
时间:
2018-8-4 22:50
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2