本题的难点是“移动过程中不能出现多颗棋子同时在某一格的情况”. 事实上,可以忽略此条件,因为棋子是相同的,我们可以用合法的等效方案替代一棋子越过另一棋子的情况:A.B.C三格,A能在一步走到B,B也能在一步走到C. 在A的棋子需要走到存在棋子的B,接着走到C.此情形我们可以看成在B的棋子先走到C,接着在A的棋子走到B. BFS预处理出每个初始位置走到每个终止位置的最少步数. 把初始位置抽象成二部图的左部,终止位置抽象成二部图的右部,左右之间边权为最少步数. 那么次二部图的完备匹配对应着一种方案,…