CSP 202104-2 邻域均值 python 二维前缀和
Posted 风信子的猫Redamancy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSP 202104-2 邻域均值 python 二维前缀和相关的知识,希望对你有一定的参考价值。
CSP 202104-2 邻域均值 python 二维前缀和
题目描述
思路
这道题可以简单的先,我们可以用暴力法,但是暴力法只能过70%的数据
实际上我们是利用一个前缀和的思想进行求解,只需要求出前缀和,然后得出领域的和,这样我们就不用使用双重循环暴力求解了,具体实现可以看一下代码
这里注意一个点,由于矩阵有边界,因此需要对边界范围进行处理
代码
# http://118.190.20.162/view.page?gpid=T127
n,L,r,t = map(int,input().split())
A = [[0]*(n+2)]
for i in range(n):
A.append([0] + list(map(int,input().split())) + [0])
A.append([0]*(n+1))
b = [[0]*(n+2) for i in range(n+2)]
for i in range(1,n+1):
for j in range(1,n+1):
b[i][j] = b[i-1][j] + b[i][j-1] - b[i-1][j-1] + A[i][j] # 处理前缀和矩阵
sum = 0
for i in range(1,n+1):
for j in range(1,n+1):
x1 = max(i-r,1)
y1 = max(j-r,1)
x2 = min(i+r,n)
y2 = min(j+r,n)
ans = (x2-x1+1)*(y2-y1+1) # 领域内的个数
if (b[x2][y2] + b[x1-1][y1-1] - b[x1-1][y2] - b[x2][y1-1])/ans <= t:
sum += 1
print(sum)
以上是关于CSP 202104-2 邻域均值 python 二维前缀和的主要内容,如果未能解决你的问题,请参考以下文章