สมมติว่าเรามีค่า p และ q สองค่า เราต้องหาจำนวนช่องสี่เหลี่ยมที่ไม่ซ้ำกันซึ่งสามารถสร้างได้จากตารางที่มีแถว p และคอลัมน์ q ที่วางจุดไว้อย่างเท่าเทียมกัน ถ้าคำตอบคือผลลัพธ์ที่ได้กลับมามาก mod 10^9 + 7 ในปัญหานี้ สี่เหลี่ยมจัตุรัสคือชุดของ 4 จุดที่ประกอบเป็นสี่จุดยอดของสี่เหลี่ยมจัตุรัส ด้านข้างของสี่เหลี่ยมจัตุรัสต้องมีความยาวเท่ากัน และไม่จำเป็นต้องจัดแนวให้ชิดกับแกนของตารางเสมอไป
ดังนั้น หากอินพุตเป็น p =4, q =4 เอาต์พุตจะเป็น 20
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
สำหรับฉันอยู่ในช่วงต่ำสุดของ r ถึง c ทำ
-
ans :=ans +(r - i) *(c - i) * i
-
ส่งคืน mod (10^9 + 7)
-
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
class Solution: def solve(self, r, c): ans = 0 for i in range(min(r, c)): ans += (r - i) * (c - i) * i return ans % (10 ** 9 + 7) ob = Solution() print(ob.solve(4,4))
อินพุต
p = 4 q = 4
ผลลัพธ์
20