0分求助,不知道为什么题解里dp数组要设为最大值
代码如下,我的思路同完全背包思路
#include<bits/stdc++.h>
using namespace std;
long long dp[1000000];
int w[10000],c[10000];
int main()
{
int m;
cin>>m;
for(int i=1;i<=18;i++)
{
w[i]=i*i*i*i;
}
for(int i=1;i<=18;i++)
{
for(int j=w[i];j<=m;j++)
{
dp[j]=max(dp[j],dp[j-w[i]]+1);
}
}
cout<<dp[m];
return 0;
}