Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาจำนวนสี่เหลี่ยมในตารางใน Python


สมมติว่าเรามีค่า 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