比赛 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;
}