求助:要是数据量改到10^5该怎么优化才能过啊!
查看原帖
求助:要是数据量改到10^5该怎么优化才能过啊!
678674
Palpitat楼主2022/3/12 16:39
#include<bits/stdc++.h>
using namespace std;
const int maxn=100001;
int f[maxn],wei[maxn],weal[maxn],idx=0,sum[maxn];
int main()
{
	int m,n;
	cin>>m>>n;
	for(int i=1;i<=n;i++){
		int wi,we;
		cin>>wi>>we;
		if(wi<=m)
		{
			wei[++idx]=wi;
			weal[idx]=we;
			sum[idx]+=sum[idx-1]+wei[idx];
		}		
	}
	for(int i=1;i<=idx;i++){
		int bound=max(wei[i],m-(sum[idx]-sum[i-1]));
			for(int j=m;j>=bound;j--){
				f[j]=max(f[j],f[j-wei[i]]+weal[i]);
			}
	}
	cout<<f[m];			  
}
来自重庆市某阴间中学的题库,把数据量扩大了两个数量级,淦!
2022/3/12 16:39
加载中...