DAY7训练题 2024年pythonB组蓝桥杯第一题(连连看)

2024蓝桥题1

小蓝正在和朋友们玩一种新的连连看游戏。在一个 n × m 的矩形网格中,每个格子中都有一个整数,

第 i 行第 j 列上的整数为 Ai, j 。玩家需要在这个网格中寻找一对格子 (a, b) − (c, d)

使得这两个格子中的整数 Aa,b 和 Ac,d 相等,且它们的位置满足 |a − c| = |b − d| > 0 。

请问在这个 n × m 的矩形网格中有多少对这样的格子满足条件?

n,m = map(int,input().split())
matrix = []
score = 0
edge = True
for i in range(n):
    anum = list(map(int,input().split())) # 需要把map变为list才是可视化调用
    matrix.append(anum)
for i in range(n):
    for j in range(m):
        search = min(n,m)
        for k in range(1,search + 1): # 思路就是把每一个值的四个方向全部遍历一遍,比较一遍
            
            if (i + k) < n and (j + k) < m:
                if matrix[i][j] == matrix[i + k][j + k]:
                    score += 1
            if (i - k) >= 0 and (j - k) >= 0:
                if matrix[i][j] == matrix[i - k][j - k]:
                    score += 1
            if (i - k) >= 0 and (j + k) < m:
                if matrix[i][j] == matrix[i - k][j + k]:
                    score += 1
            if (i + k) < n and (j - k) >= 0:
                if matrix[i][j] == matrix[i + k][j - k]:
                    score += 1
print(score)

的矩形网格中有多少对这样的格子满足条件。

你可能感兴趣的:(python,蓝桥杯)