不懂就问
查看原帖
不懂就问
691494
liuchenyu2022楼主2023/4/15 17:19

不懂就问 这份代码:

#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了
为什么啊?

2023/4/15 17:19
加载中...