当前位置: 首页 > news >正文

P1731 生日蛋糕 做题记录

洛谷P1731 生日蛋糕 做题记录

题意简述

一个生日蛋糕由几个圆柱体组成,每个圆柱体的底面半径和高从下到上严格递减,现给出蛋糕的体积 N pi 以及层数 M,试求蛋糕的最小表面积。

思路速通

基本为 DFS ,对于每层的半径以及高度进行枚举,然后增加一些剪枝。
以下为较为重要的剪枝:

  1. 体积明显不够剩下的层数进行分配时 return;
  2. 当前体积已经>n时return;
  3. 当前已经累加出的表面积明显大于当前已经算出的最小总表面积时 return;
  4. 当前已经累加出的表面积与剩下部分最小的表面积之和明显打与当前已经算出的最小总表面积时 return ;

代码实现

#include<bits/stdc++.h>
#define bot r[1]*r[1]
using namespace std;
const int inf=2147483647;
int n,m;
int r[25],h[25];
int minn=inf;void dfs(int now,int v_last,int s,int last_m){if(last_m<0){return ;}if(v_last<0){return ;}//体积>n时剪枝if(s>=minn){return ;}if(v_last==0&&!last_m){s+=bot;minn=min(minn,s);return ;}if(s+last_m*2+bot>minn){return ;}//当前表面积与剩余最小表面积相加之和大于当前已经算出的最小总表面积时剪枝if(v_last>r[now-1]*r[now-1]*h[now-1]*last_m){return ;}//当前剩余体积不够剩余的最大体积分配时剪枝for(int i=r[now-1]-1;i>=last_m;i--){//枚举半径for(int j=h[now-1]-1;j>=last_m;j--){//枚举高度if(v_last>=i*i*j&&now+1<=m+1){r[now]=i;h[now]=j;dfs(now+1,v_last-i*i*j,s+2*i*j,last_m-1);r[now]=0;h[now]=0;}}}return ;
}int main() {scanf("%d %d",&n,&m);if(m==1){//只有一层时特判//朴素暴力for(int i=n;i>=1;i--){for(int j=n;j>=1;j--){if(i*i*j==n){minn=min(minn,2*i*j+i*i);}}}printf("%d",(minn==inf?0:minn));return 0;}r[0]=(int)sqrt(n);h[0]=(int)sqrt(n);dfs(1,n,0,m);printf("%d",(minn==inf?0:minn));//最终还要判断是否有方案return 0;
}
http://www.jsqmd.com/news/4760/

相关文章:

  • 详细介绍:【MySQL】MySQL数据库入门指南
  • 如何有效提升代码覆盖率:从单元测试到集成测试的实践指南
  • 深入解析:SSM网络游戏交易系统a9n72(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • Spring知识点(2)
  • 超越实习期的AI自动化工具:播客工作流与Slack导出器实战
  • 调度器的各项指标以及计算方式
  • ​CentOS 7 安装 net-tools.rpm 包步骤详解(附 rpm 命令和 yum 方法)​附安装包
  • 深入解析:【Linux】UDP 网络编程
  • 浅谈dsu on tree
  • Linux目录下有100百万个文件,如何快速删除
  • JavaDay10
  • 29.Linux防火墙管理 - 详解
  • 【转】中国信通院《低代码产业发展研究报告(2025年)》核心解读
  • 【C++】内存管理 - 指南
  • 昇腾多机推理极速上手:10倍简化的 DeepSeek R1 超大规模模型部署
  • python开始exe应用程序初级教程
  • 深入解析:cocos 添加背景,帧动画,贴图
  • B站油管抖音一键笔记
  • 介绍自己
  • pycharm更换国内源
  • 基于Python+Vue开发的反诈视频宣传管理系统源码+运行步骤
  • MySQL中的空间碎片率计算分析 - 指南
  • 0voice-2.2.1-服务器百万并发实现
  • 对于Hash冲突的处理
  • 完整教程:事件驱动与CDS:基于FHIR R5 Subscriptions与Bulk Data的再考察(上)
  • 关于SeaTunnel 达梦数据迁移无法自动建表的问题
  • 大模型agent综述:A Survey on Large Language Model based Autonomous Agents - 详解
  • 微服务去掉认证的功能
  • INNER JOIN LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
  • 思想