比赛 |
2025.10.18 |
评测结果 |
WAWAATAWAA |
题目名称 |
生日蛋糕 |
最终得分 |
60 |
用户昵称 |
梧叶已同秋雨去 |
运行时间 |
5.485 s |
代码语言 |
C++ |
内存使用 |
3.67 MiB |
提交时间 |
2025-10-18 11:55:06 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,s1,ans=1e9;
void dfs(int t,int r,int h,int nw,int q){
// cout<<q;
if(t==m+1&&nw==0){
ans=min(ans,q);
// printf("ans:%d\n",s1+q);
return;
}
if(t>=m+1)return;
if(nw<=0)return;
if((nw/(h))+q>ans)return;
// if(t==m&&nw>=(r*r*h))return;
for(int i=1;i<h;i++){//i是高
for(int j=1;j<r;j++){//j是半径
// printf("t:%d r:%d h:%d\n",t,j,i);
if(t==1){
s1=j*j;
dfs(t+1,j,i,nw-(j*j*i),q+(2*j*i)+s1);
}else{
dfs(t+1,j,i,nw-(j*j*i),q+(2*j*i));
}
}
}
return;
}
int main(){
freopen("cake.in","r",stdin);
freopen("cake.out","w",stdout);
cin>>n>>m;
dfs(1,n,n,n,0);
cout<<ans;
return 0;
}