POJ 2363 Blocks
2012-08-11 08:50
267 查看
Description
Donald wishes to send a gift to his new nephew, Fooey. Donald is a bit of a traditionalist, so he has chosen to send a set of N classic baby blocks. Each block is a cube, 1 inch by 1 inch by 1 inch. Donald wants to stack the blocks together into a rectangular
solid and wrap them all up in brown paper for shipping. How much brown paper does Donald need?
Input
The first line of input contains C, the number of test cases. For each case there is an additional line containing N, the number of blocks to be shipped. N does not exceed 1000.
Output
Your program should produce one line of output per case, giving the minimal area of paper (in square inches) needed to wrap the blocks when they are stacked together.
Sample Input
Sample Output
给定一个液体方块N,可以任意变形(也是方块),求最小表面积
设A*B*C==N,我们可以枚举A={1........N};B={1..........N};C={1..........N};求出最小的值给ANS「N」;
用到ANS「N」时直接打印就可以了
LANGUAGE:C
CODE:
Donald wishes to send a gift to his new nephew, Fooey. Donald is a bit of a traditionalist, so he has chosen to send a set of N classic baby blocks. Each block is a cube, 1 inch by 1 inch by 1 inch. Donald wants to stack the blocks together into a rectangular
solid and wrap them all up in brown paper for shipping. How much brown paper does Donald need?
Input
The first line of input contains C, the number of test cases. For each case there is an additional line containing N, the number of blocks to be shipped. N does not exceed 1000.
Output
Your program should produce one line of output per case, giving the minimal area of paper (in square inches) needed to wrap the blocks when they are stacked together.
Sample Input
5 9 10 26 27 100
Sample Output
30 34 82 54 130
给定一个液体方块N,可以任意变形(也是方块),求最小表面积
设A*B*C==N,我们可以枚举A={1........N};B={1..........N};C={1..........N};求出最小的值给ANS「N」;
用到ANS「N」时直接打印就可以了
LANGUAGE:C
CODE:
#include<stdio.h> #define min(a,b) a<b?a:b #define INF 1<<30 int ans[1001]; void getans() { int i,j,k; for(i=1;i<1001;i++)ans[i]=INF; for(i=1;i<1001;i++) { for(j=1;j<1001;j++) { if(i*j>1000)break; for(k=1;k<1001;k++) { if(i*j*k>1001)break; ans[i*j*k]=min(ans[i*j*k],(i*j+j*k+k*i)<<1); } } } } int main() { int n,cas; getans(); scanf("%d",&cas); while(cas--) { scanf("%d",&n); printf("%d\n",ans ); } return 0; }
相关文章推荐
- POJ 2363 Blocks
- poj 2363 Blocks
- POJ 2363 Blocks(简单题)
- zoj 1910 || poj 2363 Blocks (感谢党姐做的数论水题。。。)
- POJ 2363 Blocks(我的水题之路——立方体体积和表面积,暴力)
- 【打表出来】poj 2363 Blocks
- poj 2363 Blocks
- poj 2363 blocks
- Blocks(POJ-2363)
- POJ 2363 Blocks (ZOJ 1910) 数学
- POJ 2363 Blocks (ZOJ 1910) 数学
- POJ 2363 Blocks(水~)
- POJ 3734 Blocks
- poj 3734 Blocks 快速幂+费马小定理+组合数学
- poj 1609 Tiling Up Blocks
- Poj 3734 Blocks【递推+矩阵快速幂】好题
- [POJ1390]Blocks(dp)
- poj 3255 Roadblocks(无向图次短路 SPFA)
- POJ 3734 Blocks DP优化
- poj 1208 The Blocks Problem (链表模拟)