kokodayoo @ 2020-11-21 09:45:54
样例对了
#include<iostream>
#include<cstdio>
#define N 1001000
using namespace std;
int n,m,a,b,c;
int q[N],t[N],q1[N][3],t1[N][3];
int r[N];
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a>>b>>c;
if(!c){
q[i]=a;
t[i]=a*b;
}else{
q1[c][0]++;
q1[c][q1[c][0]]=a;
t1[c][q1[c][0]]=a*b;
}
}
for(int i=1;i<=m;i++){
for(int j=n;q[i]!=0&&j>=q[i];j--){
r[j]=max(r[j],r[j-q[i]+t[i]]);
if(j>q[i]+q1[i][1]){
r[j]=max(r[j],r[j-q[i]-q1[i][1]]+t[i]+t1[i][1]);
}
if(j>q[i]+q1[i][2]){
r[j]=max(r[j],r[j-q[i]-q1[i][2]]+t[i]+t1[i][2]);
}
if(j>q[i]+q1[i][1]+q1[i][2]){
r[j]=max(r[j],r[j-q[i]-q1[i][1]-q1[i][2]]+t[i]+t1[i][2]+t1[i][2]);
}
}
}
cout<<r[n]<<endl;
return 0;
}
by 小罐猹 @ 2020-12-29 21:01:02
兄弟 我跟你一样/捂脸
by 小罐猹 @ 2020-12-29 21:12:43
兄弟这个玩意要按主件编号排 我觉得题意没说清楚/捂脸
by World_Ender @ 2021-01-21 10:23:37
同感