时间限制: 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
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m;
int w[],f[],c[],v[];
int main()
{
cin>>m>>n;
for(int i=;i<=n;i++)
{
int x,y;
cin>>x>>y;
cin>>c[i];
cin>>w[i];
v[i]=y-x;
}
memset(f,,sizeof f );
for(int i=;i<=n;i++)
for(int k=;k<=c[i];k++)
for(int j=m;j>=w[i];j--)
f[j]=max(f[j],f[j-w[i]]+v[i]); printf("%d",f[m]);
return ;
}
备注:此题目的A和B是反的