c++ - 最小方格数
问题描述
有一个问题指出:
John 有一张 NxM 尺寸的纸,他想把它剪成 1x1 的正方形,规则是:他只能在某个时间剪一张纸,每次剪都要绕着纸走
这是它的代码:
int n , m;
cin >> n >> m;
cout << (n - 1) + 1LL * n * (m - 1);
有人能解释一下你为什么要这样解决吗?
解决方案
这是我根据答案对问题的理解:
- 你把纸剪成 N 等长的片。每个长度为 1,宽度为 M。这需要 (N-1) 次切割。
- 对于这 N 张纸中的每一张,您将它们切成 M 等份,宽度为 1,长度为 1。这需要每张纸 (M-1),因此总共需要 N * (M-1)。
因此结果是 (N-1) + N * (M-1)
推荐阅读
- reactjs - React Transition Group 仅在 Firefox 中表现不佳
- r - 将列表转换为 R 中具有多列的数据框
- vue.js - VueI18n 检查翻译是否存在
- java - 在使用 Java 8 流过滤列表期间返回空嵌套对象时设置值
- intellij-idea - IntelliJ Idea - 不编译类 - 但解析库
- oracle - BLOB 加载 Oracle - ORA-22288
- javascript - Javascript中的组合总和
- wordpress-gutenberg - 使用 wordpress/create-block 包创建块时出错
- swift - 如何在 SwiftUI 的列表中删除部分中的项目
- npm - 纯 CSS npm 项目的入口点应该是什么?