提交时间:2023-12-09 09:42:33

运行 ID: 114804

#include<bits/stdc++.h> using namespace std; int w[1000],f[1000][1000]; int main(){ int m,n; cin>>m; for(int i=0;i<=m;i++){ f[1][i]=i; } for(int i=2;i*i<=m;i++){ n=i; for(int v=0;v<=m;v++){ f[i][v]=f[i-1][v]; for(int p=0;v-p*i*i>=0;p++){ f[i][v]=min(f[i-1][v-i*i*p]+p,f[i][v]); } } } cout<<f[n][m]; return 0; }