【20181026T1】**手枪【dfs】

题面

【错解】

百年难得一见之提高考搜索了

。。。怎么搞啊

相当于是S进去有一个环?

tarjan?

跑个联通块,可以穿过去的连一条边?

好主意……

dfs写完了……

哎等下?

5 5
.##..
#####
..##S
#.#..
..#.#

那直接搜吧

写了个纯暴搜,T了

不对啊,dfs判下连通性就好了

然后复制了3×3的,记录每个小图的点对应的大图的点跑过几次,大图中的点哪些访问过,如果没访问过但小图跑过,说明有解

卡常卡进1s

WA了,20分

【正解】

首先复制3×3的是错的

6 20
#.##.##.##.##.##.##.
#.##.##.##.##.##.##.
#.##.##.##.##.##.##.
S.#..#..#..#..#..#..
##..#..#..#..#..#..#
#..#..#..#..#..#..##

然而我过了这个点我也不知道为什么

我们发现实际上小图中的一个点,在大图中对应的最多只有一个

而大图实际上无限大,我们可以记小图时顺便记下大图的位置

dfs的时候顺便转移一下就好

复杂度O(玄学)

代码

posted @ 2018-10-26 16:25  lst_mengbier  阅读(128)  评论(0编辑  收藏  举报