在C++中,如何在棋盘上进行最少的切割,使得棋盘不会被分成两部分
概念
给定一个 A x B 的棋盘,任务是计算我们可以在棋盘上构建的最大切割次数,以使棋盘不会被分成两部分。
示例
示例如下:
输入
A = 2, B = 4
输出
Number of maximum cuts = 3
输入
A = 2, B = 2
输出
Number of maximum cuts = 1
方法
对于 A = 2,B = 2,我们只能构建 1 次切割(红色标记)。如果我们再进行 1 次切割,则棋盘将被分成 2 部分。

对于 A = 2,B = 4,我们可以进行 3 次切割(红色标记)。如果我们再进行 1 次切割,则棋盘将被分成 2 部分。

因此,可以观察到切割次数 = (A-1) * (B-1)。
示例
//This is C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
// function that calculates the maximum no. of cuts
int numberOfCuts1(int A, int B){
int result1 = 0;
result1 = (A - 1) * (B - 1);
return result1;
}
// Driver Code
int main(){
int A = 4, B = 4;
// Calling function.
int Cuts = numberOfCuts1(A, B);
cout << "Maximum cuts = " << Cuts;
return 0;
}输出
Maximum cuts = 9
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP