#题目描述
一个n*n(n>=2)棋盘上有黑白棋子各一枚。游戏者A和B轮流移动棋子,A先走。
- A的移动规则:只能移动白棋子。可以往上下左右四个方向之一移动一格。
- B的移动规则:只能移动黑棋子。可以往上下左右四个方向之一移动一格或者两格。
和通常的“吃子”规则一样,当某游戏者把自己的棋子移动到对方棋子所在的格子时,他就赢了。两个游戏者都很聪明,当可以获胜时会尽快获胜,只能输掉的时候会尽量拖延时间。你的任务是判断谁会赢,需要多少回合。
比如n=2,白棋子在(1,1),黑棋子在(2,2),那么虽然A有两种走法,第二个回合B总能取胜。
#做法
暴力搞搞即可
我们记\(f_{x_a,y_a,x_b,y_b,dep,t}\)表示A的棋子在\((x_a,y_a)\),B的棋子在\((x_b,y_b)\),当前是第\(dep\)步,轮到\(t\)走
同时,我们发现,A必败,除非开始的时候A和B在一起(\(\mathrm{abs}(x_a-x_b)+\mathrm{abs}(y_a-y_b)=1\))
你看B那里,一次最多走两步!就算玩捉迷藏也赢了啊!
然后顶多吧整个棋盘走一边啥的,所以搜索的层数不会太深
#复杂度分析
反正很大,但是就是T不了(不要吐槽我编译超时!)
#AC Code