在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