【错解】
百年难得一见之提高考搜索了
。。。怎么搞啊
相当于是S进去有一个环?
tarjan?
跑个联通块,可以穿过去的连一条边?
好主意……
dfs写完了……
哎等下?
5 5
.##..
#####
..##S
#.#..
..#.#
那直接搜吧
写了个纯暴搜,T了
不对啊,dfs判下连通性就好了
然后复制了3×3的,记录每个小图的点对应的大图的点跑过几次,大图中的点哪些访问过,如果没访问过但小图跑过,说明有解
卡常卡进1s
WA了,20分
【正解】
首先复制3×3的是错的
6 20
#.##.##.##.##.##.##.
#.##.##.##.##.##.##.
#.##.##.##.##.##.##.
S.#..#..#..#..#..#..
##..#..#..#..#..#..#
#..#..#..#..#..#..##
然而我过了这个点我也不知道为什么
我们发现实际上小图中的一个点,在大图中对应的最多只有一个
而大图实际上无限大,我们可以记小图时顺便记下大图的位置
dfs的时候顺便转移一下就好
复杂度O(玄学)