AcWing 3617. 子矩形计数
原题链接
中等
作者:
半岛加珍珠
,
2021-06-08 20:45:28
,
所有人可见
,
阅读 305
python 代码
def work(a,s,n):
j = 0
for i in range(n):
if a[i] == 1:
j += 1
s[1] += 1
s[j + 1] -= 1
else:
j = 0
for i in range(1,n + 1):
s[i] = s[i - 1] + s[i]
n,m,k = map(int,input().split())
# for i in range(n):
# a.append(int(input()))
#
# for i in range(m):
# b.append(int(input()))
a = [int(x) for x in input().split()]
b = [int(x) for x in input().split()]
s1 = [0 for i in range(n + 5)] # 这个5随便写的
s2 = [0 for i in range(m + 5)]
work(a,s1,n)
work(b,s2,m)
res = 0
for i in range(1,n + 1):
if k % i != 0:
continue
if k / i > m:
continue
res += s1[i] * s2[k//i]
print(res)