洛谷 P1731 生日蛋糕

时间:2023-03-09 17:42:42
洛谷 P1731 生日蛋糕
/*洛谷 1731 生日蛋糕 傻傻的-1 T成了傻逼*/
#include<cstdio>
#include<iostream>
#include<cmath>
#define inf 1e17
#define maxn 20
#define ll long long
using namespace std;
ll n,m,ans=inf,a[maxn],b[maxn];
void Dfs(ll now,ll V,ll S,ll h,ll r){
ll res=m-now+,r1=;
if(V>n||V+a[res]>n||S+b[res]>=ans)return;
if(S+(n-V)/r*>=ans)return;
if(V+res*(h-)*(r-)*(r-)<n)return;
if(now==m+){
if(V==n)ans=S;return;
}
ll x,y;y=max(res,(ll));
for(ll i=h-;i>=y;i--){
ll x=min(r-,(ll)sqrt((n-V-a[res-])/i)+);
for(ll j=x;j>=y;j--){
if(now==)r1=j;
Dfs(now+,V+i*j*j,S+i*j*+r1*r1,i,j);
}
}
}
int main()
{
cin>>n>>m;
for(ll i=;i<=m;i++){
a[i]=a[i-]+i*i*i;
b[i]=b[i-]+*i*i;
}
Dfs(,,,n+,n+);
if(ans==inf)ans=;
cout<<ans<<endl;
return ;
}