20161023 NOIP 模拟赛 T1 解题报告
Task 1.紙盒子
(box.pas/box.c/box.cpp)
?
【題目描述】
Mcx是一個有輕度潔癖的小朋友。有一天,當他沉溺于數(shù)學卷子難以自拔的時候,恍惚間想起在自己當初學習概率的時候準備的一堆橡皮還雜亂地堆在自習室里。這顯然是他無法容忍的。于是他決定做一個體積為V(V=abc)的紙盒子,以便能整齊的擺放它們。為了簡單起見,這個紙盒子的長、寬、高均為正整數(shù)。當然了,Mcx是一個以勤儉聞名的小朋友,因此他想知道,這個紙盒子的表面積(S=2ab+2ac+2bc)的最小值是多少呢?
?
【題目輸入】
???????? 僅一行,為一個正整數(shù)V,表示紙盒子的體積。
?
【題目輸出】
???????? 僅一行,為一個正整數(shù)S,表示紙盒子的最小表面積。
?
【樣例輸入】
17
?
【樣例輸出】
70
?
【樣例解釋】
對于體積為17的盒子只有一種制作方法就是長1寬1高17(這里我們可以認為長,寬,高是等價的),于是它的最小表面積就是2*1*17+2*1*17+2*1*1 = 70
?
【數(shù)據(jù)范圍】
30%數(shù)據(jù)滿足V<=1000
100%數(shù)據(jù)滿足V<=10^9
?
——————————分割線—————————
瞎基本枚舉。
1 #include "cstdio" 2 #include "algorithm" 3 #include "iostream" 4 #include "fstream" 5 #include "sstream" 6 #include "cmath" 7 #include "cstdlib" 8 9 using namespace std ; 10 typedef long long QAQ ; 11 const long long INF = 2147483647 ; 12 13 QAQ min_val = INF ; 14 15 inline QAQ gmin ( const QAQ x , const QAQ y ) { return x > y ? y : x ; } 16 17 int main ( ) { 18 QAQ N , n ; 19 freopen ( "box.in" , "r" , stdin ) ;freopen ( "box.out" , "w" , stdout ) ; 20 cin >> N ; 21 n = ( QAQ ) cbrt ( ( QAQ ) N ) ; 22 for ( QAQ i=1 ; i<=n ; ++i ) 23 for ( QAQ j=1 ; j<= ( QAQ ) sqrt ( ( QAQ ) ( N / i ) ) ; ++j ) 24 if ( !( N % i ) && !( N % j ) && !( N % ( N / i / j ) ) ) min_val = gmin ( min_val , ( i * j + ( N / j ) + ( N / i ) ) << 1 ) ; 25 cout << min_val << endl ; 26 fclose ( stdin );fclose ( stdout ) ; 27 return 0 ; 28 } View Code?
2016-10-25 ?15:37:44
?
轉(zhuǎn)載于:https://www.cnblogs.com/shadowland/p/5996916.html
總結(jié)
以上是生活随笔為你收集整理的20161023 NOIP 模拟赛 T1 解题报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:TestLink1.9.3测试用例:
- 下一篇: Activity动画效果笔记