背包为什么会re,
查看原帖
背包为什么会re,
483058
陈泽涵爱g编程楼主2021/9/11 17:47
#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
int ans;
const int MNAX=1001;
int a[MNAX],dp[2<<31];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	//	dp[a[i]]=a[i];
	}
	dp[0]=1;
	for(int i=1;i<=n;i++){
		for(int j=m;j>0;j--){
			if(j-a[i]>=0&&dp[j-a[i]]!=0){
				dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
				ans=max(j,ans);
			}
		}
	}
	cout<<ans;
	return 0;
} 
2021/9/11 17:47
加载中...