hrbust 1241 Blocks【暴力枚举+简单优化】
2016-09-05 12:50
351 查看
Blocks | ||||||
| ||||||
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 | ||||||
5 9 10 26 27 100 | ||||||
Sample Output | ||||||
30 34 82 54 130 | ||||||
Source | ||||||
Waterloo local 2002.09.21 | ||||||
Recommend | ||||||
程宪庆 |
给你n个1*1*1大小的立方体,让你将其包装起来,而且要求包装起来的形状必须是正方体/长方体,问最少包装纸花费。
思路:
1、首先我们知道,一个长方体/正方体最重要的三个元素就是:长、宽、高。那么我们想办法找出来长宽高abc使得其外表面积最小即可。
2、找了半天规律,最后入手点发现应该在n<=1000上边。因为n并不大,我们可以通过枚举a,b然后用n/a*b得到c,如果此时a、b、c的方案是一种可行方案,那么a*b*2+b*c*2+a*c*2就是一种可行方案解,然后我们一直枚举下去,维护最小方案值即可。
3、简单优化:如果a*b>n跳出即可。
Ac代码:
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
int output=0x3f3f3f3f;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i*j>n)break;
int a=i,b=j;
int c=n/(a*b);
if(a*b*c==n)
{
output=min(output,a*b*2+b*c*2+a*c*2);
}
}
}
printf("%d\n",output);
}
}
相关文章推荐
- 最简单的暴力求解算法 简单枚举
- HDU 4681 string 求最长公共子序列的简单DP+暴力枚举
- hrbust 1957 干掉坏人【Dfs+暴力枚举】
- Hrbust 1789 通信道路【思维+暴力枚举】
- HDU 5560 jrMz and angles(简单暴力枚举)
- zoj 1716 又是一道简单题。直接暴力枚举实现!
- UVA 725 Division(暴力枚举 简单)
- 蓝桥杯 基础练习 2n皇后问题 (简单dfs暴力+优化剪枝)
- 蓝桥杯 黑白无常 (简单暴力枚举)
- Hrbust 2232 股票【暴力枚举+最大连续子序列和】水题= =
- Birthday Cake (uva10167简单暴力枚举)
- 小白书暴力求解篇--简单枚举
- zoj 1008 暴力枚举求解dfs+优化
- 51Nod 1094 和为k的连续区间 (前缀和暴力枚举/map优化)
- codeforce #126Div2 200A Cinema 【优化暴力枚举】
- poj 1054 The Troublesome Frog 排序后暴力枚举,剪枝优化
- zoj 1008 暴力枚举求解dfs+优化
- 暴力破解之简单枚举2
- Hust oj 1241 Blocks(暴力)
- Hrbust 1201 Zombie’s Treasure Chest【贪心+暴力枚举】