p1789插火把python
  • 板块题目总版
  • 楼主Lars0421
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/12/24 20:52
  • 上次更新2024/12/25 12:58:32
查看原帖
p1789插火把python
1564064
Lars0421楼主2024/12/24 20:52

为什么,哪里有问题?求大佬点播我 n, m, k = map(int, input().split()) matrix = [[0] * n for _ in range(n)] # 构建一个二维矩阵,0表示暗的,1表示亮的

for i in range(m): # 火把 x, y = map(int, input().split()) row = x - 1 col = y - 1 matrix[row][col] = 1 # 矩阵是从0开始的 if 0 <= row - 1 < n and 0 <= col - 1 < n: matrix[row - 1][col - 1] = 1 if 0 <= row - 1 < n and 0 <= col + 1 < n: matrix[row - 1][col + 1] = 1 if 0 <= row + 1 < n and 0 <= col - 1 < n: matrix[row + 1][col - 1] = 1 if 0 <= row + 1 < n and 0 <= col + 1 < n: matrix[row + 1][col + 1] = 1 # 行变 for l in range(n): # 将这里的k改为l,避免和外层的k冲突 if l!= col: matrix[row][l] = 1 # 列变 for j in range(n): if j!= row: matrix[j][col] = 1

for j in range(k): a, b = map(int, input().split()) row = a - 1 col = b - 1 # 处理萤石所在5*5格子位置变亮(注意边界判断) for i in range(max(0, row - 2), min(n, row + 3)): for c in range(max(0, col - 2), min(n, col + 3)): # 将这里的j改为c,避免变量冲突 if 0 <= i < n and 0 <= c < n: # 增加这层判断,确保在矩阵范围内 matrix[i][c] = 1

count = 0 for line in matrix: for num in line: if num == 0: count += 1

print(count)

2024/12/24 20:52
加载中...