[LuoguP1363]幻想迷宫】的更多相关文章

[LuoguP1363]幻想迷宫(Link) 现在有一个迷宫,从迷宫边界的任意一点可以走到对面,即:若都是路面,则可以从\((1, i)\)走到\((N, i)\).其余情况依旧.问是否可以从指定的起点\((Sx, Sy)\)走到无限远的距离. 简化题目中说了什么叫做走到无限远的距离.那么第一种思路就是计算如果某一个边界点可以到达与之相对应的边界点,那么我们就说可以走到无限远的距离.但是仔细思考之后我们发现这个显然不行,因为它没有考虑在路途中可以进行边界传送.列如下面的样例: 我们从起点开始向右…
[题目描述:] 幻象迷宫可以认为是无限大的,不过它由若干个N*M的矩阵重复组成.矩阵中有的地方是道路,用'.'表示:有的地方是墙,用'#'表示.LHX和WD所在的位置用'S'表示.也就是对于迷宫中的一个点(x,y),如果(x mod n,y mod m)是'.'或者'S',那么这个地方是道路:如果(x mod n,y mod m)是'#',那么这个地方是墙.LHX和WD可以向上下左右四个方向移动,当然不能移动到墙上. 请你告诉LHX和WD,它们能否走出幻象迷宫(如果它们能走到距离起点无限远处,就…
P1363 幻想迷宫 题目描述 背景 Background (喵星人LHX和WD同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫.) WD:呜呜,肿么办啊-- LHX:momo...我们一定能走出去的! WD:嗯,+U+U! 描述 Description 幻象迷宫可以认为是无限大的,不过它由若干个N*M的矩阵重复组成.矩阵中有的地方是道路,用'.'表示:有的地方是墙,用'#'表示.LHX和WD所在的位置用'S'表示.也就是对于迷宫中的一个点(x,y),如果(x mod…
这题其实可以很简单. 题目叫做"幻想迷宫",那么我们就幻想一个迷宫. 借用一下@FancyDreams的图片 只有左上角第一个\(5*4\)的迷宫是真的, 其他都是我们幻想出来的. 并且,我们幻想自己在中间那个\(5*4\)的迷宫里的S处,我们并不需要开多很多倍的数组,要获取这个位置是'.'还是'#',只需对当前坐标取余\(n,m\)即可.注意一个细节,直接取余的话若\(x=n\),那么取余后就变成0了,所以我们要这样: \[(x-1)\ mod\ n + 1\] y坐标同理.每走到一…
P1363 幻想迷宫 题目描述 背景 Background (喵星人LHX和WD同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫.) WD:呜呜,肿么办啊…… LHX:momo...我们一定能走出去的! WD:嗯,+U+U! 描述 Description 幻象迷宫可以认为是无限大的,不过它由若干个N*M的矩阵重复组成.矩阵中有的地方是道路,用'.'表示:有的地方是墙,用'#'表示.LHX和WD所在的位置用'S'表示.也就是对于迷宫中的一个点(x,y),如果(x mod…
题目描述 背景 Background (喵星人LHX和WD同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫.) WD:呜呜,肿么办啊…… LHX:momo...我们一定能走出去的! WD:嗯,+U+U! 描述 Description 幻象迷宫可以认为是无限大的,不过它由若干个N*M的矩阵重复组成.矩阵中有的地方是道路,用'.'表示:有的地方是墙,用'#'表示.LHX和WD所在的位置用'S'表示.也就是对于迷宫中的一个点(x,y),如果(x mod n,y mod m)…
题目描述 背景 Background (喵星人LHX和WD同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫.) WD:呜呜,肿么办啊…… LHX:momo...我们一定能走出去的! WD:嗯,+U+U! 描述 Description 幻象迷宫可以认为是无限大的,不过它由若干个N*M的矩阵重复组成.矩阵中有的地方是道路,用'.'表示:有的地方是墙,用'#'表示.LHX和WD所在的位置用'S'表示.也就是对于迷宫中的一个点(x,y),如果(x mod n,y mod m)…
题目链接 很好的一道搜索题,应该是利用了离散化的思想我好蒟蒻呀 地图是根据给定的图无限的拼接的. 所以说暴力建图是不可取的. 其实不难看出,在跨越两张图时.我们就可以看做这个点时空穿梭一般.从底下回来了. 所以只用在原图上跑dfs觉可以了. 那怎么判断是否在同一张图内被遍历了呢? 又这么判断同一个点在不同的图中是否被遍历了呢? 我们可以将他最近被遍历的原坐标(在无限的地图中的坐标)记录下来 . 如果一个点在一次被遍历时,如果这个点上一次被遍历到时的原坐标不等于现在的坐标.那么就找到了解 很好的题…
毒瘤题,做了一晚上抄题解A了 因为是抄题解,我也不好意思说什么了,就发篇博客纪念一下吧 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,m,nn,mm; bool map1[1501*2][1501*2],map2[1501][1501],hhh[1501][1501]; bool dfs(int x,int y) { if(x == -1) { if(df…
题目:https://www.luogu.org/problemnew/show/P1363 题意: 有一个地图,起点是S,障碍物用#表示.可以将这个地图不断的在四周重复,问从起点开始是否可以走到无限远的地方去. 思路: 刚开始想的是地图放中间,然后在四周都拼一个同样的,然后看看能不能走回到起点. 但是发现仅仅是拼四个是不够的,那拼九个?反正又是MLE又是WA的. 主要思路还是dfs搜索,题目中其实给了提示了,可以利用取模. 把每一次走的位置都压缩到一个地图上去.但是又去标记这是在那一块被访问到…