首页 > 代码库 > Codevs 1371 浴火银河跑运输

Codevs 1371 浴火银河跑运输

时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold
 题目描述 Description:
小 K 又在玩浴火银河了。。。不过这次他的目的真的是跑运输赚钱。。。
他想知道在两个星系之间跑运输最多可以赚多少钱。
他的路线是 【星系 1—星际 2】
输入描述 Input Description:
第一行,两个数,A,B;
A 代表有多少种货物;B 代表小 K 的飞船最大承载重力;
 
接下来的 A 行:第 i 行表示第 i 种货物的信息:
{在星系 1 的价格}{在星系 2 的价格}{在星系 1 货物的件数}{每件货
物的重力}
输出描述 Output Description:
仅一行,运输的最大盈利。
货物的重力总和不能超过 B。
样例输入 Sample Input:
3 9
13 63 1 8
2 5 4 9
7 16 9 6
样例输出 Sample Output:

50

 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int n,m; 6 int w[110],f[110],c[110],v[110]; 7 int main() 8 { 9     cin>>m>>n;10     for(int i=1;i<=n;i++)11     {12         int x,y;13         cin>>x>>y;14         cin>>c[i];15         cin>>w[i];16         v[i]=y-x;17     }18     memset(f,0,sizeof f );19     for(int i=1;i<=n;i++)20       for(int k=1;k<=c[i];k++)21         for(int j=m;j>=w[i];j--)22           f[j]=max(f[j],f[j-w[i]]+v[i]);23     24     printf("%d",f[m]);25     return 0;26 }

备注:此题目的A和B是反的

Codevs 1371 浴火银河跑运输