Python实现【战场索敌】

360影视 国产动漫 2025-04-23 11:42 4

摘要:from collections import dequedef solve:n, m, K = map(int, input.split)grid = [list(input.strip) for _ in range(n)]visited = [[Fals

from collections import dequedef solve:n, m, K = map(int, input.split)grid = [list(input.strip) for _ in range(n)]visited = [[False for _ in range(m)] for _ in range(n)]directions = [(-1, 0), (1, 0), (0, -1), (0, 1)]res = 0for i in range(n):for j in range(m):if grid[i][j] != '#' and not visited[i][j]:queue = dequequeue.append((i, j))visited[i][j] = Trueenemy_count = 0while queue:x, y = queue.popleftif grid[x][y] == 'E':enemy_count += 1for dx, dy in directions:nx, ny = x + dx, y + dyif 0 遍历地图:对于每个未被访问的 '.' 或 'E',启动一次广度优先搜索(BFS)或深度优先搜索(DFS)来探索整个区域。统计敌人:在探索过程中,统计当前区域中的 'E' 的数量。判断条件:如果敌人数小于 K,则增加结果计数。标记访问:为了避免重复统计,需要标记已访问的格子。

来源:爱吃鱼的阿笨猫

相关推荐