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\n",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\n",ans);
26         }
27     }
28 
29     return 0;
30 }

 

相关文章:

  • 2021-07-23
  • 2022-01-15
  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2021-08-04
  • 2021-12-14
  • 2021-11-17
猜你喜欢
  • 2022-02-25
  • 2022-12-23
  • 2022-12-23
  • 2021-12-14
  • 2021-08-27
  • 2022-12-23
  • 2021-06-20
相关资源
相似解决方案