本题可以转化为在一个网格上的状态搜索问题。猎手和幻影的初始位置已知,每次猎手移动一个方向,幻影同时向相反方向移动一格。猎手不能踏入陷阱,幻影一旦踏入陷阱即被消灭。我们需要统计存在合法移动序列使得幻影能被消灭的陷阱总数。
由于猎手和幻影同步移动,我们可以使用**广度优先搜索(BFS)**遍历所有可能的状态。具体思路如下:
在一个 n 行 m 列的矩形林地中,部分位置布有尖刺陷阱。猎手初始位于第 2n 行第 2m 列的格子,一个会模仿猎手动作的幻影初始位于第 2n+1 行第 2m+1 列的格子。保证这两个位置都是安全的空地。 猎手每次可以向上、下、左、右移动一格,但不能踏入有陷阱的格子;幻影则会同步做出相反方向的移动(猎手向上,幻影向下;猎手向左,幻影向右,等等)。一旦幻影踏入某个陷阱格子,该陷阱会被触发并消灭幻影。在移动过程中,猎手不能进入陷阱,且幻影初始位置也无陷阱。 请问:在给定的陷阱分布下,有多少个陷阱能够通过猎手的一系列移动,让幻影踩中而被消灭?注意猎手可以选择任意合法的移动序列,但消灭幻影后行动即告终止。
网格的行数 n 与列数 m 均为偶数,且满足 4≤n×m≤106。陷阱用 1 表示,安全空地用 0 表示。
第一行包含两个整数 n 和 m,分别表示网格的行数和列数。 接下来 n 行,每行包含 m 个整数,每个整数为 0 或 1,其中 0 代表空地,1 代表陷阱。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.