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 二维前缀和的主要内容,如果未能解决你的问题,请参考以下文章

CCF 202104-2 邻域均值 100分(二维前缀和)

CCF 202104-2 邻域均值 100分(二维前缀和)

CCF CSP-2021-04 赛题练习

csp刷题第一周

csp刷题第一周

学习 opencv--- 线性邻域滤波专场:方框滤波,均值滤波,高斯滤波