zoukankan      html  css  js  c++  java
  • HDU4112

     1 对于n*m*k的方块,用手掰成1*1*1的那么搜需要的步骤是固定的,为n*m*k-1,如果用刀切,因为可以把多块叠在一起切,所以对于长度为n的,将他切成0,所需要的步骤数位k  
     2 
     3 对于n*m*k的方块,用手掰成1*1*1的那么搜需要的步骤是固定的,为n*m*k-1,如果用刀切,因为可以把多块叠在一起切,所以对于长度为n的,将他切成0,所需要的步骤数位k[cpp] view plaincopyprint?
     4 满足n/2^k=1即n=2^k,等式两边取对数,logn=k*log2,所以k等于logn/log2  
     5 
     6 #include<stdio.h>   
     7 #include<string.h>   
     8 #include<math.h>   
     9 int main()  
    10 {  
    11     __int64 i,j,n,m,k;  
    12     __int64 cas=0;  
    13     __int64 t;  
    14     scanf("%I64d",&t);  
    15     while(t--)  
    16     {  
    17         scanf("%I64d%I64d%I64d",&n,&m,&k);    
    18         __int64 ans1=n*m*k-1;    
    19         __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)));    
    20         printf("Case #%I64d: %I64d %I64d
    ",++cas,ans1,ans2);    
    21   
    22     }  
    23     return 0;  
    24 }  
  • 相关阅读:
    Hive小结
    Redis小结
    Hbase小结
    Rdd/DataFrame/DataSet 小结
    spark杂记2
    shiyan
    stanford推荐阅读目录
    超市收银系统之——3
    超市收银系统之超市类——4
    超市收银系统_仓库类——2
  • 原文地址:https://www.cnblogs.com/okboy/p/3276447.html
Copyright © 2011-2022 走看看