讨论 / ...看我AC
dog1889 2014-07-30 10:52:43
点我顶贴 收藏 删除
#include<iostream>

#include<cstdio>

#include<cmath>

#include<cstdlib>

#include<algorithm>

#include<cstring>

#include<string>

#define ll long long

#define INF 940000004

using namespace std;

ll v1[64],v2[64],v3[64],s1[64],s2[64],s3[64];

ll n,m,x,y,w;

ll maxn=0,f[32004]={0};

int main(){

cin>>m>>n;

for(int i=1;i<=n;i++){

cin>>x>>y>>w;

if(w!=0){

if(v2[w]==0){v2[w]=x;s2[w]=y;}

else{v3[w]=x;s3[w]=y;}

}else{

v1[i]=x;

s1[i]=y;

}

}

for(int i=1;i<=n;i++){

for(int j=m;j>=v1[i];j--){

f[j]=max(f[j],f[j-v1[i]]+v1[i]*s1[i]);

if(j-v1[i]-v2[i]>=0)

f[j]=max(f[j],f[j-v1[i]-v2[i]]+v1[i]*s1[i]+v2[i]*s2[i]);

if(j-v1[i]-v3[i]>=0)

f[j]=max(f[j],f[j-v1[i]-v3[i]]+v1[i]*s1[i]+v3[i]*s3[i]);

if(j-v1[i]-v2[i]-v3[i]>=0)

f[j]=max(f[j],f[j-v1[i]-v2[i]-v3[i]]+v1[i]*s1[i]+v2[i]*s2[i]+v3[i]*s3[i]);

maxn=max(maxn,f[j]);

}

}

cout<<maxn<<endl;

return 0;

}

#1 MDZZ@2017-01-26 16:40:47
回复 删除
hh
#2 Steven.B@2017-02-07 22:27:29
回复 删除
为什么include那么多……
#3 yekechen5336@2021-05-23 12:08:07
回复 删除
这™也太长了吧,我19行就搞定了

查看更多回复
提交回复