uva 10970 Big Chocolate

https://vjudge.net/problem/UVA-10970

题意:

把一个m * n 的巧克力切成mn个 1 * 1 的方块,最少需要切几刀?每刀只能把一块巧克力分成两部分,也就是说不能一刀切两块。

思路:

先把巧克力切成n条,每条再切 m - 1 刀

先把切成m条,每条再切n - 1刀

两种方案取最小,1的时候特判。

代码:

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int n,m;
 9 
10     while (scanf("%d%d",&m,&n) != EOF)
11     {
12         if (m < n) swap(m,n);
13 
14         if (n == 1)
15         {
16             printf("%d
",m - 1);
17         }
18         else
19         {
20             int ans1 = (n - 1) + (m - 1) * n;
21             int ans2 = (m - 1) + (n - 1) * m;
22 
23             int ans = min(ans1,ans2);
24 
25             printf("%d
",ans);
26         }
27     }
28 
29     return 0;
30 }
原文地址:https://www.cnblogs.com/kickit/p/7921516.html