题目大意
有一个 n×mn\times mn×m 的迷宫,每个格子有一种颜色,每种颜色代表一种移动方向,最多改变 kkk 个格子的颜色,判断能否从 (1,1)(1,1)(1,1) 移动到 (n,m)(n,m)(n,m) 。
解题思路
考虑每个格子的上下左右四个移动方向,可以对相邻格子都建有向边,若当前格子地板的移动方向与要移动的方向相同,建一条边权为 000 的有向边,若方向不同,建一条边权为 111 的有向边。
于是问题就转化为了最短路问题,求出从 (1,1)(1,1)(1,1) 到达 (n,m)(n,m)(n,m) 需要花费的最小代价,若比 kkk 大,则无法逃离迷宫,否则,可以逃离迷宫。
参考代码