题意:要把一块n*m*k的巧克力分成1*1*1的单元,有两种操作方式:1,用手掰(假设力量无穷大),每次拿起一块,掰成两块小的;2,用刀切(假设刀无限长),可以把多块摆在一起,同时切开。问两种方式各需多少次操作才能完成任务。

分析:用手掰很明显是(n*m*k-1)次操作。用刀切注意不是((n-1)+(m-1)+(k-1))次操作,这只是不动原巧克力的操作数。举个例子:1*1*4的巧克力,用刀切,按上面说的要3次操作,实际上只需2次。所以不管是长宽高,都只需要[log2n](或m,k)次操作。

注意:数据范围上限是2000,n*m*k后超出231的范围,__int64

 #include<cstdio>
#include<cstring>
#include<algorithm>
#define lld __int64
using namespace std; lld ans; void Num(int x)
{
while(x>)
{
if(x%)
x=x/+;
else
x=x/;
ans++;
}
return ;
} int main()
{
int T;
lld n,m,k;
scanf("%d",&T);
for(int cnt=;cnt<=T;cnt++)
{
scanf("%I64d%I64d%I64d",&n,&m,&k);
ans=;
Num(n);
Num(m);
Num(k);
printf("Case #%d: %I64d %I64d\n",cnt,n*m*k-,ans);
}
return ;
}

最新文章

  1. Zabbix监控nginx-rtmp status(html版)
  2. android 入门-安装环境
  3. 透过 HoloLens,微软抢先看到了个人计算机的未来
  4. Mybatis框架_part1
  5. Android实现边缘凹凸的View
  6. iOS学习笔记---oc语言第八天
  7. 图中最短路径算法(Dijkstra算法)(转)
  8. 安装freebsd9 出现 mountroot&gt;怎么办
  9. Python 2.7 学习笔记 内置语句、函数、标准库
  10. HTML5,微信开发原码社区
  11. 使用shell命令分析统计日志
  12. 关于 pthread_cond_wait 和 pthread_cond_signal , signal 无效的问题
  13. vsftp搭建
  14. vue.js过滤器
  15. jquery 入口函数
  16. 我的大学,我的SPR机器人队
  17. Fantasy of a Summation LightOJ - 1213 (快速幂)
  18. POJ 2395 Out of Hay (Kruskal)
  19. win7 精简板 安装ardunio uno r3驱动
  20. icanhazip.com 使你在不论什么地方知道你的公网IP地址

热门文章

  1. HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)
  2. Python与数据结构[1] -&gt; 栈/Stack[1] -&gt; 中缀表达式与后缀表达式的转换和计算
  3. mysql----kill慢查询
  4. Debian下载地址
  5. 【Linux】CentOS7上的一些操作小方法
  6. Gradle Distributions
  7. 前端JS利用canvas的drawImage()对图片进行压缩
  8. log4j教程 5、示例程序
  9. bash: /bin/bash^M: bad interpreter: No such file or directory
  10. 使用Java取得本机IP和机器名