rt:

我的代码:
#include<bits/stdc++.h>
using namespace std;
int v,n,t;
int a[11][31];
int w[31];
int c[31];
int f[201];
int main(){
cin>>v>>n>>t;
for(int i=1;i<=n;i++)
{
int p;
cin>>w[i]>>c[i]>>p;
a[p][++a[p][0]]=i;
}
for(int k=1;k<=t;k++)
for(int j=v;j>=0;j--)
for(int i=1;i<=a[i][0];i++)
{
if(j>=w[a[k][i]])
{
int tmp=a[k][i];
if(f[j]<f[j-w[tmp]]+c[tmp])
f[j]=f[j-w[tmp]]+c[tmp];
}
}
cout<<f[v];
}
wa测试点:
178 26 4
43 1527 3
130 1077 1
74 527 2
155 74 3
157 186 3
144 1796 2
159 727 3
129 929 3
47 338 1
17 1302 1
133 1725 2
124 1998 1
125 1332 2
162 207 3
21 583 3
137 613 1
163 126 2
98 1858 2
140 553 1
152 395 3
34 580 1
40 555 1
66 333 3
38 1594 3
173 1840 1
99 1186 1
我的输出:3356
正确输出:4754