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,找出蛋糕的制作方案(适当的Ri和Hi的值),使S最小。
(除Q外,以上所有数据皆为正整数)
有两行,第一行为N(N <= 10000),表示待制作的蛋糕的体积为Nπ;第二行为M(M <= 20),表示蛋糕的层数为M。
仅一行,是一个正整数S(若无解则S = 0)。
Sample Input
100
2
Sample Output

68

https://www.cnblogs.com/GraceSkyer/p/5902045.html
https://www.cnblogs.com/shenben/p/6053079.html
https://blog.csdn.net/v5zsq/article/details/46575215
https://blog.csdn.net/nvfumayx/article/details/6653111

#include <iostream>
#include <cstring>
using namespace std;
int n,m,sum;
int leftMinS[21],leftMinV[21];
void DFS(int r,int h,int sumV,int sumS,int c)
{if(c==0){if(sumS<sum&&sumV==n)sum=sumS;return ;}//剪枝:/*r*r*h=v//v是剩下的v2*r*h=ss=2*v/r+sumS>sum=>return 把剩下的所有体积,全部用来只做成一个圆柱体,这种情况加所增加到表面积是最小的。*/if(2*(n-sumV)/r+sumS>=sum)return ;//剪枝if(sumS+leftMinS[c]>sum||sumV+leftMinV[c]>n)return ;for(int i=r-1;i>=c;--i){if(c==m)sumS=i*i;for(int j=h-1;j>=c;--j){DFS(i,j,sumV+i*i*j,sumS+2*i*j,c-1);}}
}
int main()
{cin>>n>>m;// int MIN,dfs;memset(leftMinS,0,sizeof(leftMinS));memset(leftMinV,0,sizeof(leftMinV));for(int i=1; i<22; i++){leftMinS[i] = leftMinS[i-1] + i*i*2;//初始化从第一层到第i层所能做到的的最小表面积leftMinV[i] = leftMinV[i-1] + i*i*i;//初始化从第一层到第i层所能做到的的最小体积}sum=999999999;DFS(100,10000,0,0,m);//r h v s mcout<<sum<<endl;return 0;
}

poj 1190 生日蛋糕 难|供自己瞻仰相关推荐

  1. poj 1190 生日蛋糕

    poj 1190 生日蛋糕 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 17460 Accepted: 6221 Descri ...

  2. POJ 1190 生日蛋糕 【DFS + 极限剪枝】

    题目传送门:http://poj.org/problem?id=1190 参考剪枝:https://blog.csdn.net/nvfumayx/article/details/6653111 生日蛋 ...

  3. POJ - 1190 - 生日蛋糕 (深搜剪枝)

    链接: http://poj.org/problem?id=1190 思路: 剪枝. 1.从半径n+1开始 2.当前已有表面积,加上剩余的预估最小表面积,若大于最优解,减掉.(什么是预估最小解?高度每 ...

  4. POJ - 1190 生日蛋糕(dfs+剪枝)

    题目链接:点击查看 题目大意:给出生日蛋糕的总体积,以及有多少层,我们要求下面的每一层的高度和半径都要比上面一层的大,并且都是整数,求满足要求的最小表面积 题目分析:因为题目提到了半径和高度都是整数, ...

  5. poj 1190(剪枝)

    生日蛋糕 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16191   Accepted: 5751 Description ...

  6. bailian.openjudge 1190:生日蛋糕

    http://bailian.openjudge.cn/practice/1190/ 描述 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从 ...

  7. DFS--POJ 1190 生日蛋糕

    Description 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri ...

  8. POJ 2912 Rochambeau(难,好题,枚举+带权并查集)

    下面的是从该网站上copy过来的,稍微改了一点,给出链接:http://hi.baidu.com/nondes/item/26dd0f1a02b1e0ef5f53b1c7 题意:有N个人玩剪刀石头布, ...

  9. ACM题集以及各种总结大全(转)

    ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正. 一.ACM入门 关 ...

最新文章

  1. 科普:不要对移动机器人有误解
  2. 反射setaccessible_advancedday16类加载器,反射
  3. html设置分割线怎么下移,HTML设置水平分割线
  4. SQLyog 安装和配置教程
  5. 生产订单管理系统软件哪家好?
  6. JMeter下载安装以及使用教程
  7. OBV指标交易策略(累积能量潮与移动能量潮,成交量多空比率净额及相关应用原则)
  8. python雷达图的相似度_python画雷达图
  9. 在Android上将实时摄像头与AI危害检测配合使用
  10. USGS批量下载Landsat遥感影像数据时无法下载Surface Reflectance的解决
  11. java可以开发安卓app吗,Java开发者必看
  12. MySQL异常一之: You can‘t specify target table for update in FROM clause解决办法
  13. 我的博客园博客开通咯(qyl)
  14. CentOS 7重启报错:Entering emergency mode. Exit the shell to continue...
  15. java8的stream流编程的sorted排序方法
  16. 云计算技术的应用和前景
  17. NLP之NLG入门理解
  18. 04-dropbear
  19. matlab获取晶粒边界,晶粒边界
  20. 电脑连接手机热点,显示无法连接到这个网络

热门文章

  1. SQL Server-创建表格、各种约束条件
  2. python运行mcmc为何老出错_python中mcmc方法的实现
  3. Git的学习与使用(五)——Git 创建仓库
  4. 程序员的学习方法的一些总结
  5. EntityFramework Core 1.1是如何创建DbContext实例的呢?
  6. Spring 建立简单的示例
  7. 用微信小程序开发的Canvas绘制可配置的转盘抽奖
  8. 【POJ】1742 coins 【背包问题】
  9. 性能翻倍 IBM借DS3500拓中低端存储市场
  10. 【Python-ML】SKlearn库逻辑斯蒂回归(logisticregression) 使用