• 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*m-1);
    31     }
    32 
    33     return 0;
    34 }
  • 相关阅读:
    AngularJS自定义表单验证器
    AngularJS自定义表单验证
    DataTables自定义筛选器
    DataTables列过滤器
    DataTables语言国际化
    DataTables DOM定位
    DataTables自定义事件
    DataTables给表格绑定事件
    自定义Celery任务记录器
    celery 日志设置
  • 原文地址:https://www.cnblogs.com/xl1164191281/p/5592153.html
Copyright © 2020-2023  润新知