在尝试写一维的01背包,只能过小样例!
查看原帖
在尝试写一维的01背包,只能过小样例!
557887
acahv楼主2021/8/25 07:27
#include<bits/stdc++.h>
using namespace std;
int T,M;
int W[110],V[110];
int f[1010];
int main()
{
	scanf("%d%d",&T,&M);
	for(int i=1;i<=M;i++)
	{
		scanf("%d%d",&W[i],&V[i]);
	}
	for(int i=1;i<=T;i++)
	{
		for(int j=T;j>=0;j--)
		{
			if(j>=W[i])f[j]=max(f[j],f[j-W[i]]+V[i]);
			cout<<f[i]<<endl;
		}
	}
	cout<<f[T]<<endl;
	//cout<<T<<endl;
	return 0;
}

可以过小样例,大的会莫名其妙算出大数字

但是仔细查了很久都没有查出错!求救!!

2021/8/25 07:27
加载中...