แนวคิด
จาก A x B Chessboard ภารกิจคือการคำนวณจำนวนการตัดสูงสุดที่เราสามารถสร้างใน Chessboard เพื่อไม่ให้กระดานหมากรุกถูกแบ่งออกเป็น 2 ส่วน
ตัวอย่าง
ตัวอย่างได้รับด้านล่าง −
ป้อนข้อมูล
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