不懂就问 这份代码:
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
//#define int long long
using namespace std;
inline int read()
{
int x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
int idx[1001][1001];
int value[1001],ys1[1001],dp[1001];
signed main()
{
int g, maxg, YS1, n;
YS1=read();
n=read();
for(int i=1;i<=n;i++)
{
ys1[i]=read(),value[i]=read(),g=read();
idx[g][0]++;
idx[g][idx[g][0]]=i;
maxg=max(g,maxg);
}
for(int i=1;i<=maxg;i++)
for(int j=YS1;j>=0;j--)
for(int k=1;k<=idx[i][0];k++)
if(j>=ys1[idx[i][k]])
dp[j]=max(dp[j],dp[j-ys1[idx[i][k]]]+value[idx[i][k]]);
cout<<dp[YS1];
return 0;
}
全AC
但开了
//#define int long long
就re了
为什么啊?