CodeVS 1710 生日蛋糕 题解

【题解】P1731 [NOI1999] 生日蛋糕 非常麻烦的剪枝条件! 思路 表面积S = 2πr^ h; 体积V = πr^2 h;根据题意可以在计算时约去π。由于蛋糕的高度和半径都是需要逐层递减的,所以最大高度和最大的半径都一定是小于n的,我们通过dfs暴力搜索,枚举每一层可能的高度h和半径r,直到找到层数和体积都符合题意,而且使得表面积最小的答案。 有几个要进行剪枝的地方: 1. 已经用的表面积比当前最优答案大或者是此时体积体积超出题目要求的范围 2.当前的表面积 + 用去侧面积 >= 当前答案值(关键剪枝) 然后就可以解出结果啦!直接放全部 阅读详情
#include <cstdio>
using namespace std;

int N, M;
int ans = ~0u>>1;
bool flag;

void DFS(int R, int H, int V, int S, int m){
	if(S>ans)return;
	if(V>R*R*H*m)return;
	if(m && !V)return;
	if(!m && V)return;
	if(R<m)return;
	if(H<m)return;
	if(V<0)return;
	if(m<0)return;
	if(V==0 && m==0){
		if(ans > S)ans = S, flag = true;
		return;
	}
	for(int r = R; r>=m; --r)for(int h = H; h>=m; --h)DFS(r-1, h-1, V-r*r*h, S+2*r*h, m-1);
}

int main() {
	scanf("%d %d", &N, &M);
	for(int R = 70; R>=M; --R)for(int H = (N/R/R); H>=M; --H)DFS(R-1, H-1, N-R*R*H, R*R+2*R*H, M-1);
	if(flag) printf("%d\n", ans);
	else printf("0\n");
	return 0;
}

 

深度搜索剪枝——生日蛋糕问题 Description:7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为N*pi的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1 Ri+1且Hi > Hi+1。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 令Q = S*pi请编程对给出的N和M,找出蛋糕的制作方案(适当的Ri和Hi的值),使S最小。 (除Q外,以上所有数据皆为正整数)Input:有两行,第一行为N(N Output:仅一行,是一个正整数S(若无解则S = 0)。 阅读详情

相关推荐

poj生日蛋糕解题报告

poj生日蛋糕解题报告,希望能够对大家能够有所帮助,不多说了,大家下载

c++画蛋糕_【题解】生日蛋糕-C++

Description7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱。当i < M时,要求Ri > Ri+1且Hi > Hi+1。由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。令Q =...

weixin_32139169的博客 2536

Matplotlib图片尺寸调整全攻略:从figsize到savefig的实战技巧

在数据可视化与科学计算中,图形尺寸控制是影响图表可读性与专业度的基础环节。其核心原理在于协调逻辑尺寸(英寸)与物理输出(像素)的映射关系,这直接决定了信息呈现的清晰度与布局合理性。从技术价值看,精准的尺寸控制能提升图表在不同媒介(如学术论文、报告、网页)中的适配性,避免显示不全、模糊失真等常见问题。在应用场景上,无论是Jupyter Notebook中的交互探索、自动化报告的批量生成,还是满足严格出版要求的插图制作,都需要掌握对应的尺寸调整策略。本文聚焦于matplotlib中的figsize参数、rcPa

weixin_30899023的博客 328

CODE[VS] 2692 小明过生日

题目描述Description 今天是小明的生日,请问下一个生日在什么时候.格式:年 月 日。 输入描述Input Description 小明的生日 输出描述Output Description 下一个小明的生日 样例输入Sample Input 2013 2 13 样例输出Sam...

weixin_30325071的博客 419

SAP ABAP BADI_FINS_ACDOC_POSTING_EVENTS 深度应用:KO88工单结算的凭证字段定制与财务数据增强

本文深入探讨了SAP ABAP中BADI_FINS_ACDOC_POSTING_EVENTS在KO88工单结算中的应用,详细解析了如何通过BADI实现财务凭证字段的定制与数据增强。文章提供了从结构扩展到BADI方法实现的完整步骤,包括性能优化建议和实际应用中的测试验证流程,帮助开发人员高效解决企业个性化财务需求。

weixin_26869081的博客 389

基于STM32的六足机器人控制系统设计(项目资料ID:27)

六足机器人控制系统综合分析其结构、步态与控制算法,融合云端服务、Wi-Fi、蓝牙、语音识别及手势识别等多种技术,设计了多元化控制模式,并针对不同应用场景提出了差异化的构建方案。系统硬件采用分层设计,分为主控板与舵机控制板:主控板以 STM32F103VET6 为核心,负责各类控制模式的数据处理与状态显示;舵机控制板采用 STM32F103R8T6,专注于舵机角度的精确控制,两板通过串口实现数据交互。

以培养嵌入式工程师为己任 1万+

codevs 1710 生日蛋糕

7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1<=i<=M)层蛋糕是半径为Ri, 高度为Hi的圆柱。当i < M时,要求Ri>Ri+1且Hi>Hi+1。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 令Q= Sπ 请编程对给出的N和M,找出蛋糕的制作方案(适当的R

A_Comme_Amour的博客 1194

第 1 篇:对象池模式 (Object Pool) —— 裸机下的动态内存革命

摘要:嵌入式开发中频繁malloc/free会导致内存碎片和性能问题。对象池模式通过预分配固定大小内存块和位图管理,实现O(1)时间复杂度的内存分配/释放。相比malloc,对象池具有无碎片、确定性执行时间、更低内存开销等优势,尤其适合实时系统。文章详细解析了基于位图的对象池实现原理,包括核心数据结构、高性能索引算法和关键API设计,并对比了空间/时间开销,最后讨论了零拷贝队列、调试水印等进阶用法。该模式能显著提升嵌入式系统的内存使用效率和稳定性。

一路往蓝-Anbo 的博客 424

生日蛋糕 (codevs 1710) 题解

【问题描述】      7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1Ri+1且Hi>Hi+1。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 令Q= Sπ 请编程对给出的N和M,找出蛋糕的制作方案(适当的Ri和Hi的值),使S最小。 (除Q外,以上所有数据

PbTfcLx 3600

【新版系统架构】系统架构设计师教程全篇知识点提炼

信息系统的5个基本功能:输入、存储、处理、输出和控制信息系统的发展:诺兰模型:初始阶段、传播阶段、控制阶段、集成阶段、数据管理阶段、成熟阶段信息系统的分类:传统的信息系统分为:业务(数据)处理系统、管理信息系统(MIS)、决策支持系统(DSS)、专家系统(ES)、办公自动化系统(OAS)等5类信息系统的生命周期:1、产生阶段2、开发阶段(总体规划、系统分析、系统设计、系统实施、系统验收阶段)3、运行阶段4、消亡阶段信息系统建设原则:1、高层管理人员介入原则。

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 1万+

Jenkins自动化部署服务到Kubernetes环境

通过Jenkins实现自动化部署可以大大提高软件交付的效率和质量。本文介绍的部署流程涵盖了从代码编译、Maven依赖管理、Docker镜像构建到Kubernetes部署的完整流程,并提供了通知机制以便及时了解部署状态。特别需要注意的是Maven与私服的配置,这是确保构建过程能够正常访问依赖包的关键。通过Jenkins的凭据管理功能,可以安全地管理私服的认证信息,避免敏感信息泄露。在实际应用中,您可能需要根据具体的项目需求和环境特点调整部署脚本。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 527

Codevs 1710 == POJ 1190 生日蛋糕 == 洛谷P1731

生日蛋糕 时间限制: 2 s   空间限制: 128000 KB   题目等级 : 大师 Master 题目描述 Description 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1Ri+1且Hi>Hi+1。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层

苦鬼·。 346

使用everything出现mem_virtual_alloc(): Fatal Error: out of memory解决方案

本文主要介绍了使用everything出现mem_virtual_alloc(): Fatal Error: out of memory解决方案,希望能对使用everything的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

POJ-1190生日蛋糕(详细题解)深度优先搜索

一、 > 如果搭建完剩余层所需的最小体积(min_v)比剩余可用体积($V-V_i,其中V_i$表示搭建底层蛋糕已经使用的体积)还要大,则说明题目所固定的体积**不够用**,此时应该减小底层固定的半径$R_i和H_i$,直到它们满足第三种情况 二、 > 如果搭建完剩余蛋糕层所需最大体积(max_v)比剩余可用体积($V-V_i$)还要小的话,则说用题目所固定的体积**用不完**,此时应该增大底层固定的半径$R_i和H_i$,直到它们满足第三种情况 > 三、 如果搭建完剩余蛋糕层所需的最小体积(min

weixin_46295292的博客 3419

泰凌微8258入门教程 环境篇④——开发板+烧录器 8258mesh新手套件购买

工欲善其事,必先利其器。 淘宝链接:https://item.taobao.com/item.htm?

4128

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

POJ1190生日蛋糕题解

题目地址 http://poj.org/problem?id=1190 解题思路 这是一道深度优先搜索的题目,难点在于剪枝,题目中进行三次剪枝即可。 #include #include using namespace std; const int INF = 1 << 30; const int MAXM = 20 + 2; int minv[MAXM],mins[MAXM];//设置当前

ACMan 759

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

生日快乐编程代码_「世界上最好的编程语言」,刚刚度过了25周岁生日

PHP,祝你 25 岁生日快乐。机器之心报道,机器之心编辑部。「只要是用过 PHP 的程序员,都知道两件事:第一,这是一种糟糕的语言,如果有其他选择,自己绝不会再使用 PHP;第二,历史上一些非常成功的项目都在用 PHP。」Fine,这两点并不矛盾。作为一门编程语言,PHP 是有很多的缺陷,但和 PHP 环境具备的优点相比,这些缺陷也就不值一提了。和其他语言相比,PHP 为项目的搭建、更改和运行提...

weixin_39551554的博客 3463

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POJ1190 生日蛋糕 + 深搜总结

题意:原谅我的懒 分析: 搜索即可。 基本思路:枚举每层的半径和高,dfs中传5个参数,当前的层,现有表面积,现有体积,当前层下一层的高度和半径。 剪枝: 1.从下往上搜索,减小搜索树。 2.枚举高度和半径时,倒序枚举,减小搜索树。 3.上下界,详见代码。 4.最优性剪枝:预处理1-dep层的最小体积和表面积,进行剪枝。 5.最优性剪枝(不好想):用体积和表面积的关系剪枝。 #

Monster__Yi的博客 885

深度优先搜索(二)

深度优先搜索(二)

qq_64531765的博客 305

T1441生日蛋糕(信息学奥赛一本通)(深搜剪枝)

【问题】 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ\piπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i(1 <= i <= M)层蛋糕是半径为RiR_iRi​, 高度为HiH_iHi​的圆柱。当i<M时,要求RiR_iRi​ > Ri+1R_{i+1}Ri+1​且HiH_iHi​ > Hi+1H_{i+1}Hi+1​。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 令Q= Sπ\piπ,请编.

qq_45949914的博客 526

POJ1190-生日蛋糕-经典搜索题详解优化

S 解题思路 总结 代码展示

高高冷的博客 321

一本通例题-生日蛋糕——题解<超强深搜剪枝,从无限到有限>

题目传送 显然是道深搜题。由于蛋糕上表面在最底层的半径确认后就确认了,所以搜索时的面积着重看侧面积。 找维度/搜索面临状态/对象:当前体积v,当前外表面面积s,各层的半径r[],各层的高度h[]。 可行性剪枝考虑/找限制、上下界:    1、考虑当前:当前体积v一定小于总体积N;第i层的半径和高度一定比上一层小(从下往上数层数),同时每次层的高度和半径都>=1(都是正整数)。...

weixin_30344795的博客 323

1441:生日蛋糕

int n,m,t; int i,j,k; int minn=inf; void DFS(int num,int volume,int area,int r,int h) { if(num==m){ if(volume==n) minn=min(minn,area); return ; } if(volume+(r-1)*(r-1)*(h-1)*(m-num) < n) return ; if(vol...

C_Dreamy的博客 743
上一篇: 2.0版 CodeVS1099 字串变换 题解
下一篇: CodeVS 1099 字串变换 题解
Coder.AN
博客等级 码龄9年 8粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值