不能用二维dp了,应该用一维dp

hlt0310  •  9个月前


``

include<bits/stdc++.h>

using namespace std; //https://old.ynoip.cn/p/3011 const int N=1e6+1; int n,c,w[N],v[N],dp[N]; int main() {

scanf("%d %d",&n,&c);
for(int i=1;i<=n;++i) scanf("%d",w+i);
for(int i=1;i<=n;++i) scanf("%d",v+i);
for(int i=1;i<=n;++i)
	for(int j=c;j>=w[i];--j) dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
printf("%d",dp[c]);
return 0;

} ``


评论:

请先登录,才能进行评论