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\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 }
康复训练中~欢迎交流!