• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

UVA 10970-Big Chocolate

题目:
  给你一块M*N的巧克力,问把它切成最小单元需要最少切几刀,分开的就不能一起切了.

 

分析:
  每次切割只能多产生一个部分,分成M*N个部分,必然要切M*N-1刀.

  一个长为m宽为n的长方形和m*n个单位为1的正方形的面积相等,可知一个长方形变成m*n个正方形,面积是一直没变,

  所以可以不用考虑面积对结果的影响,只需考虑刀数的影响;

  切一刀一个就变两个,所以一个长方形变成m*n个正方形(边长为1)至少需要切m*n-1刀

 

 

代码如下:

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <fstream>
 5 #include <cmath>
 6 #include <ctime>
 7 #include <cstdlib>
 8 #include <algorithm>
 9 #include <set>
10 #include <map>
11 #include <list>
12 #include <stack>
13 #include <queue>
14 #include <iterator>
15 #include <vector>
16 
17 using namespace std;
18 
19 #define LL long long
20 #define MOD 1000000007
21 #define INF 0x3f3f3f3f
22 #define MAXN 10000010
23 #define MAXM 1000010
24 
25 int main()
26 {
27     int n, m;
28     while(scanf("%d%d", &n, &m)!= EOF&&n&&m)
29     {
30         printf("%d\n", n*m-1);
31     }
32 
33     return 0;
34 }

 

posted on 2016-06-16 20:53  tony-cao  阅读(265)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3