求助 WA了6个点 dalao帮忙讲讲qwq
查看原帖
求助 WA了6个点 dalao帮忙讲讲qwq
519384
Link_Cut_Y楼主2021/8/15 12:29
#include<bits/stdc++.h>
using namespace std;
const int N=11000;
int a[N];
int w[N];
int f[N][N];

bool digit(char x)
{
    return (x>='0' && x<='9');
}
inline int read()
{
	int x=0;
	int f=1;
	char ch=getchar();
	while(!digit(ch))
	{
		if(ch=='-')
		{
			f=-1;
		}
		ch=getchar();
	}
	while(digit(ch))
	{
		x=x*10+ch-'0';
		ch=getchar();
	}
	return x*f;
}

int main()
{
	int T;
	T=read();
	int n;
	n=read();
	for(int i=1;i<=n;i++)
	{
		a[i]=read();
		w[i]=read();
	}
	int ans=-1;
	for(int i=1;i<=n;i++)
	{
		for(int j=T;j>=a[i];j--)
		{
			f[i][j]=max(f[i-1][j],f[i-1][j-a[i]]+w[i]);
			ans=max(f[i][j],ans);
		}
	}
	cout<<ans;
	return 0;
}
2021/8/15 12:29
加载中...