hdu 4112 Break the Chocolate(乱搞题)
2024-08-24 11:18:01
题意:要把一块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 ;
}
最新文章
- Zabbix监控nginx-rtmp status(html版)
- android 入门-安装环境
- 透过 HoloLens,微软抢先看到了个人计算机的未来
- Mybatis框架_part1
- Android实现边缘凹凸的View
- iOS学习笔记---oc语言第八天
- 图中最短路径算法(Dijkstra算法)(转)
- 安装freebsd9 出现 mountroot>;怎么办
- Python 2.7 学习笔记 内置语句、函数、标准库
- HTML5,微信开发原码社区
- 使用shell命令分析统计日志
- 关于 pthread_cond_wait 和 pthread_cond_signal , signal 无效的问题
- vsftp搭建
- vue.js过滤器
- jquery 入口函数
- 我的大学,我的SPR机器人队
- Fantasy of a Summation LightOJ - 1213 (快速幂)
- POJ 2395 Out of Hay (Kruskal)
- win7 精简板 安装ardunio uno r3驱动
- icanhazip.com 使你在不论什么地方知道你的公网IP地址
热门文章
- HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)
- Python与数据结构[1] ->; 栈/Stack[1] ->; 中缀表达式与后缀表达式的转换和计算
- mysql----kill慢查询
- Debian下载地址
- 【Linux】CentOS7上的一些操作小方法
- Gradle Distributions
- 前端JS利用canvas的drawImage()对图片进行压缩
- log4j教程 5、示例程序
- bash: /bin/bash^M: bad interpreter: No such file or directory
- 使用Java取得本机IP和机器名