首页 > 解决方案 > 最小方格数

问题描述

有一个问题指出:

John 有一张 NxM 尺寸的纸,他想把它剪成 1x1 的正方形,规则是:他只能在某个时间剪一张纸,每次剪都要绕着纸走

这是它的代码:

int n , m;
cin >> n >> m;
cout << (n - 1) + 1LL * n * (m - 1);

有人能解释一下你为什么要这样解决吗?

标签: c++

解决方案


这是我根据答案对问题的理解:

  • 你把纸剪成 N 等长的片。每个长度为 1,宽度为 M。这需要 (N-1) 次切割。
  • 对于这 N 张纸中的每一张,您将它们切成 M 等份,宽度为 1,长度为 1。这需要每张纸 (M-1),因此总共需要 N * (M-1)。

因此结果是 (N-1) + N * (M-1)


推荐阅读