原题链接:Here! ZOJ 2110也是这道题
题意:有一个N x M 大小的maze,从起点 ' S ' 出发到达出口 ' D ' ,每走一步需要1s,能否恰好在T秒时到达出口。
分析:一开始普通DFS,T了,所以需要奇偶剪枝,还有一个有意思的剪枝是 ① N*M - wall <= T ,从其他大神处get到的,更有意思的是如果等式 ① 不加 = ,A掉的时间是936s,加上 = ,A掉的时间是 265s。不加等号更好理解,根本没有足够长的路来到达 ' D ' ,直接NO ; 加上后会出现一个问题,有时能够恰好到,有时却不能。(可能是数测试数据的问题)
奇偶剪枝link:Here!
注意:输入时用%s,如果用两个for + getchar() 会Wrong,测试数据中的空格好像有问题,我因为这个原因Wrong了整整一页!!!
例如:
恰好到达
4 4 5
S X X X
. X X X
.