WA 0分代码:
#include <algorithm>
#include <iostream>
using namespace std;
const int maxn = 1e5 + 7;
int a[50] , f[maxn];
int dfs(int m , int i)
{
if(m == 0 || f[m]){
return f[m];
}
int ans = 1e9;
while(i <= a[0] && a[i] <= m){
ans = min(ans , dfs(m - a[i] , i) + 1);
i ++;
}
f[m] = ans;
return f[m];
}
signed main()
{
int m;
scanf("%d" , &m);
int i = 1;
while(i * i * i * i <= m){
a[++ a[0]] = i * i * i * i;
i ++;
}
f[0] = 1;
printf("%d\n" , dfs(m , 1));
return 0;
}