对于n*m*k的方块,用手掰成1**1的那么搜需要的步骤是固定的,为n*m*k-,如果用刀切,因为可以把多块叠在一起切,所以对于长度为n的,将他切成0,所需要的步骤数位k 对于n*m*k的方块,用手掰成1**1的那么搜需要的步骤是固定的,为n*m*k-,如果用刀切,因为可以把多块叠在一起切,所以对于长度为n的,将他切成0,所需要的步骤数位k[cpp] view plaincopyprint?
满足n/^k=1即n=^k,等式两边取对数,logn=k*log2,所以k等于logn/log2 #include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
__int64 i,j,n,m,k;
__int64 cas=;
__int64 t;
scanf("%I64d",&t);
while(t--)
{
scanf("%I64d%I64d%I64d",&n,&m,&k);
__int64 ans1=n*m*k-;
__int64 ans2=(__int64)(ceil(log(n*1.0)/log(2.0))+ceil(log(m*1.0)/log(2.0))+ceil(log(k*1.0)/log(2.0)));
printf("Case #%I64d: %I64d %I64d\n",++cas,ans1,ans2); }
return ;
}