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)最小呢?
这里特别感谢数竞大爷的讲解:

贴出代码:

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
freopen("box.in","r",stdin);
freopen("box.out","w",stdout);
int v;
long long int ans=1000000000000000LL,bmj;
scanf("%d",&v);
for(int a=v;a>=1;--a)
{
if((v/a)*a!=v)continue;
int kk=sqrt(v/a);
bmj=(long long int)(v/a+a*2*kk);
if(bmj<=ans||a==v){
for(int b=a;b<=a+kk;++b){
int c=v/a/b;
if(c*a*b!=v)continue;
ans=min(ans,(long long int)a*b+(long long int)b*c+(long long int)a*c);
}
}
}
printf("%I64d",2*ans);
fclose(stdin);
fclose(stdout);
return 0;
}

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. 浅谈Excel开发:八 Excel 项目的安装部署

    前面几篇文章讲解了Excel开发的几个比较主要的也是比较重要的方面,比如菜单系统,Excel对象模型,自定义函数,RTD函数,异步自定义函数,用户自定义任务面板等,在实际开发中我们还会遇到各种“千奇百 ...

  2. ubuntu git 使用

    apt-get install git//ubuntu安装git mkdir -p /var/www/gitProj //创建文件夹 cd /var/www/gitProj //进入文件夹 git i ...

  3. C#开源磁盘/内存缓存引擎

    前言 昨天写了个 <基于STSdb和fastJson的磁盘/内存缓存>,大家可以先看看.下午用到业务系统时候,觉得可以改进一下,昨晚想了一个晚上,刚才重新实现一下. 更新 1. 增加了对批 ...

  4. jmx server 和jmx client

    启动jmx server 和jmx client,通过jconsole进入jmx server 然后通过其中远程进程,进入jmx client: 发现,两者可用的tab页不同, MBean的数量类型也 ...

  5. iOS Crash常规跟踪方法及Bugly集成运用

    当app出现崩溃, 研发阶段一般可以通过以下方式来跟踪crash信息 #1.模拟器运行, 查看xcode错误日志 #2.真机调试, 查看xcode错误日志 #3.真机运行, 查看device系统日志 ...

  6. MVVM架构~knockoutjs系列之级联select

    返回目录 对于下拉列表框的绑定在之前的knockoutjs文章中已经介绍过,今天主要说一下级联的select,事实上,在knockoutjs里,是以数据绑定为中心的,而数据是以面向对象为前提的,而对于 ...

  7. java 类之间的关系

    一.继承 二.实现 三.组合

  8. Struts2--ONGL--值栈

    ONGL:用来访问栈里对象属性的语言,通常由Struts标签来解析, 注意:要在接续OGNL的页面加入<%@ taglib prefix="s" uri="/str ...

  9. 23.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。 具体要求如下: (1)Person类中的属性有:姓名name(String类型),地址address(String类型), 电话号码telphone(String类型)和电子邮件地址email(String类型); (2)Employee类中的属性有:办公室office(Stri

    package banking; public class Person { private String name; public String address; public String tel ...

  10. iOS开发中 workspace 与 static lib 工程的联合使用

    在iOS开发中,其实workspace的使用没有完全发挥出来,最近做了一些研究,也想把之前写过的代码整理下,因为iOS里面的布局方式,交互方式也就那么几种.所以,整理好了之后,更能快捷开发,而且能够形 ...