【openjudge】Minecraft
描述Minecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。
在Minecraft中,基本的建筑元素是边长为1个单位的立方体,Tony想用N个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。如果一张贴纸可以贴满小立方体的一个面。那么,他需要用掉多少张贴纸呢?
5
9
10
26
27
100
30
34
82
54
130
【解题思路】
枚举棱长
【代码】
#include<iostream>
#include<cstring>
#include<cstdio>
#define inf 2100000000
using namespace std;
int c,n,ans,sum,k;
int main(){
scanf("%d",&c);
for (int t=1;t<=c;++t){
scanf("%d",&n);
ans=inf;
for (int i=1;i<=n;++i)
if (n%i==0)
for (int j=1;j<=n/i;++j)
if (n%(i*j)==0){
k=n/(i*j);
sum=2*(i*j+j*k+k*i);
if (sum<ans) ans=sum;
}
printf("%d\n",ans);
}
}