#5 WA求助
查看原帖
#5 WA求助
345930
Gold14526神金楼主2022/10/27 16:28
#include<bits/stdc++.h>
using namespace std;
int num;
char ch;
int read()
{
	num=0;
	ch=getchar();
	while(ch<'0'||ch>'9')
	{
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		num=(num<<1)+(num<<3)+ch-'0';
		ch=getchar();
	}
	return num;
}
struct node{
	int weigth,val,with;
}a[1001];
int dp[1001];
bool cmp(node x,node y)
{
	return x.with<y.with;
}
int main()
{
	int n,m;
	m=read();
	n=read();
	for(int i=1;i<=n;++i)
	{
		a[i]=node{read(),read(),read()};
	}
	sort(a+1,a+n+1,cmp);
	a[0].with=-1;
	for(int i=1;i<=n;++i)
	{
		if(a[i].with==a[i-1].with)continue;
		for(int j=m;j>=0;--j)
		{
			for(int k=i;k<=n&&a[k].with==a[i].with;++k)
			{
				if(a[k].weigth>j)continue;
				dp[j]=max(dp[j],dp[j-a[i].weigth]+a[k].val);
			}
		}
	}
	printf("%d",dp[m]);
	return 0;
}
2022/10/27 16:28
加载中...