求助!!!
查看原帖
求助!!!
562463
acbdsyj楼主2024/8/24 12:17

各位大佬,我的朴素代码哪错了? 优化成一位后过了

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e7+10;
int t,m,a[N],b[N],f[N];
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
//	freopen("P1616.in","r",stdin);
//	freopen("P1616.out","w",stdout);
	cin>>t>>m;
	for(int i=1;i<=m;i++)cin>>a[i]>>b[i];
	for(int i=1;i<=m;i++)
		for(int j=a[i];j<=t;j++)
			f[j]=max(f[j],f[j-a[i]]+b[i]);
	cout<<f[t];		
	return 0;
}
二维的怎么调都不对……(本地测的,空间不会爆)
有大佬帮忙看看吗(弱小无助)
```cpp
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e7+10;
int t,m,a[N],b[N],f[N][N];
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
//	freopen("P1616.in","r",stdin);
//	freopen("P1616.out","w",stdout);
	cin>>t>>m;
	for(int i=1;i<=m;i++)cin>>a[i]>>b[i];
	for(int i=1;i<=m;i++)
		for(int j=0;j<=t;j++)
			if(j>=a[i])f[i][j]=max(f[i-1][j],f[i][j-a[i]]+b[i]);
	cout<<f[m][t];		
	return 0;
}
谢谢!
2024/8/24 12:17
加载中...