Task 1.纸壳子(box.pas/box.c/box.cpp)
【题目描述】
Mcx是一个有轻度洁癖的小朋友。有一天,当他沉溺于数学卷子难以自拔的时候,恍惚间想起在自己当初学习概率的时候准备的一堆橡皮还杂乱地堆在自习室里。这显然是他无法容忍的。于是他决定做一个体积为V(V=abc)的纸盒子,以便能整齐的摆放它们。为了简单起见,这个纸盒子的长、宽、高均为正整数。当然了,Mcx是一个以勤俭闻名的小朋友,因此他想知道,这个纸盒子的表面积(S=2ab+2ac+2bc)的最小值是多少呢?
【题目输入】
仅一行,为一个正整数V,表示纸盒子的体积。
【题目输出】
仅一行,为一个正整数S,表示纸盒子的最小表面积。
【样例输入1】
17
【样例输出1】
70
【样例输入2】
146
【样例输出2】
442
【样例解释】
对于体积为17的盒子只有一种制作方法就是长1宽1高17(这里我们可以认为长,宽,高是等价的),于是它的最小表面积就是2*1*17+2*1*17+2*1*1 = 70
【数据范围】
30%数据满足V<=1000
100%数据满足V<=10^9
分析:
首先!这是一道!数学题!!数学题就要有数学题的样子//这道要比其他数论妖艳贱货题好多了。
这道题其实没有什么高深的解法。但是想一想其实就是枚举。枚举a,枚举b之后c就自然就出来了。
而刚才的方法,瞎基本搞,小数据应该可以拿分。
第一种优化就是枚举a的时候只需要枚举a<=pow(v , 1.0/3 );只枚举前面的。而b就用枚举b<=sqrt(v/a);
c直接就可以求出。当然还要对它进行是不是整数的判断。
第二种优化就是枚举a的时候。对是否枚举b的剪枝判断。我们知道因为在枚举a的时候。v与a就是定值。表面积公式就是2*(ab+bc+ac)就改变成了2*(v/a+a*(b+c)) 而表面积的最小值,就转变成了(b+c)的最小值。我们又知道v/a==bc 那么 bc 也是定值 所以当b==c的时候是理论最小值。所以我们如果求出的理论最小值都要比我们枚举出来的a的答案大。那我们就没有必要再去枚举b。
为什么b*c为一定的时候 当b==c 时 (b+c)最小呢?
这里特别感谢数竞大爷的讲解:

贴出代码:

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cmath>
  4. using namespace std;
  5. int main()
  6. {
  7. freopen("box.in","r",stdin);
  8. freopen("box.out","w",stdout);
  9. int v;
  10. long long int ans=1000000000000000LL,bmj;
  11. scanf("%d",&v);
  12. for(int a=v;a>=1;--a)
  13. {
  14. if((v/a)*a!=v)continue;
  15. int kk=sqrt(v/a);
  16. bmj=(long long int)(v/a+a*2*kk);
  17. if(bmj<=ans||a==v){
  18. for(int b=a;b<=a+kk;++b){
  19. int c=v/a/b;
  20. if(c*a*b!=v)continue;
  21. ans=min(ans,(long long int)a*b+(long long int)b*c+(long long int)a*c);
  22. }
  23. }
  24. }
  25. printf("%I64d",2*ans);
  26. fclose(stdin);
  27. fclose(stdout);
  28. return 0;
  29. }

noip模拟赛 纸壳子的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  3. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  4. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  5. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  6. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  7. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  8. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  9. CH Round #52 - Thinking Bear #1 (NOIP模拟赛)

    A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...

随机推荐

  1. centos 6.5 中设置mysql 5.1.73 主从同步配置过程

    本文章给大家介绍centos 6.5设置mysql主从同步过程记录,希望文章对各位会带来帮助.  涉及到的centos系统均为虚拟机,VM下安装的版本. 在centos 6.5上设置了mysql主从功 ...

  2. Fedora23Server配置

    系统准备 启动网卡: sudo service network start 更新系统: sudo dnf update 远程管理: https://IP:9090/ Dnf使用: http://www ...

  3. 程序员必须知道的几个Git代码托管平台

    上一篇博客中2015继续任性——不会Git命令,照样玩转Git我们简单的介绍了在VS2013中使用Git,和GitHub客户端的使用.那么使用Git到底有什么好处呢?最为明显的是支持Git代码托管的平 ...

  4. FusionCharts简单教程(六)------加载外部Logo

    一.加载外部文件Logo       在使用FusionCharts时,我们可能需要在加载图像的时候需要在图表中显示标识.图片等等.这里我们可以使用logoURL属性来实现.如: <chart ...

  5. SQL Server 性能优化之——T-SQL 临时表、表变量、UNION

    这次看一下临时表,表变量和Union命令方面是否可以被优化呢? 阅读导航 一.临时表和表变量 二.本次的另一个重头戏UNION 命令 一.临时表和表变量 很多数据库开发者使用临时表和表变量将代码分解成 ...

  6. [异常解决] virtualbox从.VDI备份文件新建/恢复虚拟机(包括恢复各个备份节点)

    一.前言: ubuntu上的virtualbox中的虚拟机如果关机不当会导致整个虚拟机坏掉,而且采用各种debug方式都难以让它重新启动.这时你只能用之前备份的各个VDI文件来恢复系统了.还有另一种场 ...

  7. openseadragon.js与deep zoom java实现艺术品图片展示

    openseadragon.js 是一款用来做图像缩放的插件,它可以用来做图片展示,做展示的插件很多,也很优秀,但大多数都解决不了图片尺寸过大的问题. 艺术品图像展示就是最简单的例子,展示此类图片一般 ...

  8. NSString NSNumber 相互转化

    NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init]; NSNumber *firstNum = [NSNumber n ...

  9. ios NSLog常见使用

    NSLog常见输出格式 Table 1  Format specifiers supported by the NSString formatting methods and CFString for ...

  10. PSR规范

    背景 Framework Interoperability Group(框架可互用性小组),简称 FIG,成立于 2009 年.FIG 最初由几位知名 PHP 框架开发者发起,在吸纳了许多优秀的大脑和 ...