poj1190 神剪枝啊

POJ1190 生日蛋糕(回溯法) cuicuiv-POJ刷题 点击此处跳转原题界面---->生日蛋糕 回溯法:是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 ——在回溯法中,每次扩大当前部分解时,都面临一个可选的状态集合,新的部分解就通过在该集合中选择构造而成。这样的状态集合,其结构是一棵多叉树,每个树结点代表一个可能的部分解,它的儿子是在它的基础上生成的其他部分解。 阅读详情
又见神剪枝啊,不加
2*v/R+tmp>=ans
这句话的话,是无法避免超时的
它的意思是:当前解+剩余资源的最优解>=最优解时,剪枝,有点像a*的估价函数
#include <iostream>
#include <cmath>
using namespace std;
int R,H,n,m,ans,mv[21],tmp;
void dfs(int v,int dep,int R,int H) {
     if (dep==0) {
                 if (v==0 && tmp<ans) ans=tmp;
                 return;
     }
     if (v-mv[dep-1]<0 || tmp>=ans || 2*v/R+tmp>=ans) return;
     for (int r=R-1;r>=dep;r--) {
         int Hm = min(H-1,(v-mv[dep-1])/r/r);
         for (int h=Hm;h>=dep;h--)
             if ((v-r*r*h)>=0) {
                if (dep==m) tmp=r*r;
                tmp+=2*r*h;
                dfs(v-r*r*h,dep-1,r,h);
                tmp-=2*r*h;
                if (dep==m) tmp=0;
             }
     }
}
int main() {
    memset(mv,0,sizeof(mv));
    for (int i=1;i<=m;i++)
        mv[i]=mv[i-1]+i*i*i;
    while (~scanf("%d%d",&n,&m)) {
          ans=10000000;
          dfs(n,m,n+1,n+1);
          if (ans==10000000) printf("0\n");
          else printf("%d\n",ans);
    }
    return 0;
}


剪枝总结 一、引子 剪枝,就是减小搜索树规模、尽早排除搜索树中不必要的分支的一种手段。 形象地看,就好像剪掉了搜索树的枝条,故被称为剪枝。 二、常见剪枝方法 1.优化搜索顺序 在一些问题中,搜索树的各个分支之间的顺序是不固定的 不同的搜索顺序会产生不同的搜索形态,规模也相差甚远 2.排除等效分支 在搜索过程中,如果我们能够得知搜索树的当前节点沿着 某几条不同分支到达的子树是等效的,那么只需... 阅读详情

相关推荐

poj_ 1190 生日蛋糕

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

写东西的地方 5628

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

poj 1190 dfs+剪枝(生日蛋糕)

题意:中文题。要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1 Ri+1且Hi > Hi+1。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 令Q = Sπ 请编程对给出的N和M,找出蛋糕的制作方案(适当的Ri和Hi的值),使S最小。 (除Q外,以上所有数据皆为正整数) 思路:主要第三个剪枝比较难想:设剩余总体积

dearmango 679

poj1190详细题解

题目大意:输入一个蛋糕的最大体积和最大层数 然后对于不同的半径和高计算出最小表面积 最小表面积有则打印最小表面积,没有则打印0 蛋糕的上面一层比下面一层的半径和高要大,因为都是整数 除了Q都是整数 简洁版见最后面 解析版 #include <iostream> #include <cstdio> using namespace std; //蛋糕的最大体积 蛋...

xiaozhou163的博客 580

攻克JESD204B多ADC同步:从时钟对齐到数据对齐的实战解析

本文深入解析了JESD204B多ADC同步的系统性挑战与实战解决方案。从确保设备时钟同源、精确捕获SYSREF信号,到管理接收端弹性缓冲区与释放点,文章提供了从时钟对齐到数据对齐的完整调试路径与排查清单,是攻克高速数据采集系统中多片ADC同步难题的实用指南。

weixin_29231725的博客 197

poj 1190 生日蛋糕(剪枝+深搜)

题目地址 题目大意:Nπ体积m层的蛋糕,使得表面积最小 解题思路:将蛋糕从上到下编号1...m,从m层开始搜索,搜索过程中注意剪枝 三个剪枝条件: 1、已经搜索过的体积加上还未搜索过的最小体积不能比总体积n 大 2、已经搜索过的表面积加上还未搜索过的最小表面积不能比之前的最小总表面积best 大 3、n-sumv既所剩体积记作dv 还需要的表面积为s s=2*ri*hi+2*r(i-

booyoungxu的专栏 451

计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析

原标题:基于LSDYNA岩石爆破模拟建模分析 Ls Dyna岩石爆破模拟仿真作者:dyna_focus擅长领域:dyna/abaqus/hypermesh一、 数值模型的建立1.1 单元及算法的选择岩石,炸药,空气都采用solid164实体单元。岩石采用常应力实体单元,该种单元属于纯粹的lagrange算法,该种算法单元网格附着在材料上,随着材料的流动而产生单元网格的变形,但是在结构变形巨大时,有...

weixin_29494379的博客 7311

【POJ - 1190】生日蛋糕 (dfs+剪枝)

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

Sky丨Star的博客 93

速腾聚创激光雷达复现FAST-LIO

记录复现FAST-LIO算法的过程和,代码梳理和理解。FAST-LIO的简化版、注释版。速腾激光雷达

abanchao的博客 2928

手把手教你用QEMU虚拟化华为路由器固件(附完整网络配置指南)

本文提供了一份详尽的QEMU虚拟化华为路由器固件的实战指南。从固件解包、网络桥接配置到QEMU虚拟机启动,手把手教你搭建完整的嵌入式设备沙箱环境,特别适合安全研究、逆向分析和学习嵌入式系统工作原理。

tgb3456789的博客 937

POJ1190生日蛋糕(DFS+神级剪枝)

http://poj.org/problem?id=1190 打表每层的最小面积和体积。 由于深度一定(m),所以使用深度优先搜索,自上而下的设定蛋糕序号,最顶层的为第1层,……,最底层的蛋糕为第m层,很明显满足题目条件的前i层的(从顶层(也就是编号为1的层)开始计数)最小面积mins[i]和体积minv[i]是在该层的半径以及高度都为i时取得,如果采用一般的神搜肯定会超时,所以这题...

190

45 - Android系统源码-crosvm 实战:基于 KVM 的 Rust 安全虚拟机监控器核心技术

摘要:crosvm 是 Google 开发的基于 KVM 的轻量级虚拟机监控器(VMM),采用 Rust 语言编写,专为 ChromeOS 和 Android 设计。其核心特点包括: 安全架构:通过 Rust 的内存安全特性和多进程隔离(每个设备运行在独立沙箱进程)大幅降低攻击面 性能优化:基于 KVM 的硬件虚拟化支持,结合异步 I/O (io_uring/epoll) 实现高效设备模拟 模块化设计:清晰的 trait 抽象层(Hypervisor/Vm/Vcpu)支持跨平台扩展 Android 集成

保持专注,保持热爱 225

POJ 1190(神搜+剪枝)

原来的地址:点击打开链接 poj 1190 生日蛋糕( 深搜+2类重要剪枝总结 ) 分类: ACM笔记 2011-08-02 22:14 356人阅读 评论(0) 收藏 举报 优化systemoo 题意 :  有一个多层蛋糕,已知蛋糕的体积和层数,求该蛋糕的最小表面积(最底层的下表面面积不计入总面积)              题目对

阿歇的专栏 1027

Unity中语法糖带来的GC问题 ——那些看起来优雅、实际上在背后偷偷生垃圾的代码

*语法糖(Syntactic Sugar)**指的是编程语言中为了让代码更简洁、易读而提供的简便写法。比如C#中的foreachlambda表达式LINQ自动属性等。语法糖本身不是坏事,但在Unity等对GC敏感的环境下,要警惕语法糖带来的隐式内存分配。合理使用语法糖,关键场合用更“丑陋”但高效的写法,才能保证游戏流畅运行。下面我将更深入地分析Unity中语法糖导致GC的原理、具体场景、检测与优化技巧,并补充一些容易忽视的细节。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 517

利用 IP 中的集成调试功能来调试 PCI Express 链接训练问题

JTAG Debugger”和“In-system IBERT”功能结合在一起即可提供即时信息,用于判断链接训练问题的可能原因。“test_rd.tcl”文件可读取 BRAM 中存储的调试数据,并输出 *.dat 文件,如下所示。同样,您可能看到某一箭头旁的数字较大,表明可能存在不稳定的链接。要采集 PCIe 链接眼图,请在 IP 配置 GUI 的“Add. Debug Options”选项卡中选择“启用 In-System IBERT (Enable In-System IBERT)”选项。

qq_43416206的博客 534

poj 1190 dfs+神剪枝

生日蛋糕 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14120   Accepted: 4971 Description 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。  设从下往上数第i(1 R

cokomowang的专栏 440

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

POJ 1190 生日蛋糕 (dfs + 神剪枝)

POJ 1190 有三处剪枝,作为渣渣表示这题对我来说很有难度。题解也是看了好久才理解。 首先,minv[i] 表示从上往下数第i层以及第i层以上的最小总体积,mins[i]表示从上往下数第i层以及第i层以上的最小总面积。仔细想想可以知道每层的半径和高度都取这一层的层数即可得到最小值。 然后具体见代码。 参考博客:http://www.cnblogs.com/rainyda

Benjamin_Z的博客 1056

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

poj1190 生日蛋糕 dfs神剪枝

转载自:http://blog.youkuaiyun.com/gubojun123/article/details/7804516 由于深度一定(m),所以使用深度优先搜索,自上而下的设定蛋糕序号,最顶层的为第1层,……,最底层的蛋糕为第m层,很明显满足题目条件的前i层的(从顶层(也就是编号为1的层)开始计数)最小面积mins[i]和体积minv[i]是在该层的半径以及高度都为i时取得,如果采用一般

EventQueue的博客 723

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

poj1190 神剪枝啊 生日蛋糕 (dfs)

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

AK_HuangYC的博客 326

2016夏季练习——搜索

搜索

kiss forever 186

生日蛋糕POJ1190

生日蛋糕POJ1190 思路 题干在这:POJ1190 深度优先搜索,多剪剪枝 ac代码 #include<cstdio> #include<algorithm> #include<iostream> #include<cmath> #define inf 0x3f3f3f3f using namespace std; int N, M, S = i...

没有自旋的π介子 750

生日蛋糕POJ 1190

POJ 生日蛋糕(Tag 深搜 + 剪枝) DFS 剪枝优化 极限思想

lvxin1204的博客 3532

POJ1190:生日蛋糕(深搜+剪枝)

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

WaveBridge的博客 1670

poj1190 生日蛋糕(深搜+剪枝)

题目链接:poj1190 生日蛋糕 解题思路: 深搜,枚举:每一层可能的高度和半径 确定搜索范围:底层蛋糕的最大可能半径和最大可能高度 搜索顺序:从底层往上搭蛋糕,在同一层尝试时,半径和高度都是从大到小试 剪枝: ①已建好的面积已经超过目前求得的最优表面积,或者预见到搭完后面积一定会超过目前最优表面积,则停止搭建(最优性剪枝) ②预见到再往上搭,高度已经无法安排,或者半径无...

dhe56357的博客 179
上一篇: poj2331 ida*
下一篇: poj3460 ida*
琴空
博客等级 码龄16年 48粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值