代码如下:
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int> w;
int n,f[1000001];
signed main(){
cin>>n;
for (int i=1;i<=n;i++){
f[i]=1e9;
}
for (int i=1;i*i<=n;i++){
f[i*i]=1;
w.push_back(i*i);
}
for (int i=1;i<=n;i++){
for (int j=0;j<w.size();j++){
f[i]=min(f[i],f[w[j]]+f[i-w[j]]);
}
}
cout<<f[n]<<endl;
return 0;
}
求条,为什么会25分?
姹紫嫣红???
(马蜂不好,大佬勿喷)