使用Python查找网格中正方形数量的程序
假设我们有两个值p和q,我们必须找出从一个具有p行和q列的网格中平均放置点可以生成的唯一正方形的数量。如果答案非常大,则返回结果mod 10^9 + 7。在这个问题中,一个正方形是一组形成正方形的四个点的四个顶点。正方形的四边必须具有相同的长度,不一定需要与网格的轴对齐。
所以,如果输入如下:p = 4,q = 4,那么输出将是20。
为了解决这个问题,我们将按照以下步骤进行 –
- 对于i从r和c的最小值的范围,做以下操作 –
- ans : = ans + (r – i) * (c – i) * i
-
返回ans 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