日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > CF #301 504C C. Ice Cave BFS

CF #301 504C C. Ice Cave BFS

來源:程序員人生   發布時間:2015-05-26 08:22:58 閱讀次數:3690次

C. Ice Cave
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

You play a computer game. Your character stands on some level of a multilevel ice cave. In order to move on forward, you need to descend one level lower and the only way to do this is to fall through the ice.

The level of the cave where you are is a rectangular square grid of n rows and m columns. Each cell consists either from intact or from cracked ice. From each cell you can move to cells that are side-adjacent with yours (due to some limitations of the game engine you cannot make jumps on the same place, i.e. jump from a cell to itself). If you move to the cell with cracked ice, then your character falls down through it and if you move to the cell with intact ice, then the ice on this cell becomes cracked.

Let's number the rows with integers from 1 to n from top to bottom and the columns with integers from 1 to m from left to right. Let's denote a cell on the intersection of the r-th row and the c-th column as (r,?c).

You are staying in the cell (r1,?c1) and this cell is cracked because you've just fallen here from a higher level. You need to fall down through the cell (r2,?c2) since the exit to the next level is there. Can you do this?

Input

The first line contains two integers, n and m (1?≤?n,?m?≤?500) ― the number of rows and columns in the cave description.

Each of the next n lines describes the initial state of the level of the cave, each line consists of m characters "." (that is, intact ice) and "X" (cracked ice).

The next line contains two integers, r1 and c1 (1?≤?r1?≤?n,?1?≤?c1?≤?m) ― your initial coordinates. It is guaranteed that the description of the cave contains character 'X' in cell (r1,?c1), that is, the ice on the starting cell is initially cracked.

The next line contains two integers r2 and c2 (1?≤?r2?≤?n,?1?≤?c2?≤?m) ― the coordinates of the cell through which you need to fall. The final cell may coincide with the starting one.

Output

If you can reach the destination, print 'YES', otherwise print 'NO'.

Sample test(s)
input
4 6 X...XX ...XX. .X..X. ...... 1 6 2 2
output
YES
input
5 4 .X.. ...X X.X. .... .XX. 5 3 1 1
output
NO
input
4 7 ..X.XX. .XX..X. X...X.. X...... 2 2 1 6
output
YES
Note

In the first sample test one possible path is:

After the first visit of cell (2,?2) the ice on it cracks and when you step there for the second time, your character falls through the ice as intended.


鏈接:http://codeforces.com/problemset/problem/540/C



題意:X是坑,'.'是冰層,冰層走過1次后變成坑。問能不能從 sx,sy開始走,  在ex,ey處掉入坑中。

做法:bfs1下,X處如果不是終點,那肯定是不能走的。 如果是終點,且是X,就直接返回可以。   如果是‘.’那都可以走。走完以后把這個格子變成‘X’。復雜度為地圖大小*2。


#include <stdio.h> #include <stdlib.h> #include <string.h> #include <limits.h> #include <malloc.h> #include <ctype.h> #include <math.h> #include <string> #include <iostream> #include <algorithm> using namespace std; #include <stack> #include <queue> #include <vector> #include <deque> #include <set> #include <map> int dir[4][2]={1,0,⑴,0,0,1,0,⑴}; char mp[510][510]; int n,m; int ex,ey; int flag; struct point { int x,y; }; int ok(int x,int y) { if(x<1||x>n||y<1||y>m) return 0; return 1; } int bfs(int x,int y) { queue<point> q; point sta,nw,nxt,ep; ep.x=ex; ep.y=ey; sta.x=x,sta.y=y; q.push(sta); while(!q.empty()) { nw=q.front(); q.pop(); //printf("%d %d ",nw.x,nw.y); for(int i=0;i<4;i++) { nxt.x=nw.x+dir[i][0]; nxt.y=nw.y+dir[i][1]; if(ok(nxt.x,nxt.y)) { if(nxt.x==ep.x&&nxt.y==ep.y) { if(mp[nxt.x][nxt.y]=='.') mp[nxt.x][nxt.y]='X'; else return 1; q.push(nxt); } else if(mp[nxt.x][nxt.y]=='.') { mp[nxt.x][nxt.y]='X'; q.push(nxt); } } } } return 0; } int main() { int sx,sy; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) scanf("%s",mp[i]+1); scanf("%d%d",&sx,&sy); scanf("%d%d",&ex,&ey); flag=0; if(bfs(sx,sy)) puts("YES"); else puts("NO"); } return 0; }




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 在线男人天堂 | 国产亚州av | 99re国产精品| 日韩一级欧美 | 欧美一区二区网站 | 精品视频久久久 | 成人教育av | 亚洲福利在线观看 | 国产精品一区二区三 | 日韩国产在线播放 | 全部免费毛片在线播放网站 | 欧美精品性做久久久久久 | 亚洲视频在线免费观看 | 一区在线不卡 | 成人国产精品免费观看 | 国产精品一区二 | 天天草夜夜操 | 日本三级中国三级99人妇网站 | 天天舔天天干天天操 | 污视频免费看 | 免费国产一区二区 | 日本毛片在线观看 | 欧美乱大交做爰xxxⅹ性3 | 日韩免费在线视频 | 久久国语 | 中文字幕亚洲综合久久 | 99视频在线播放 | 国产精品国产精品国产专区不片 | 欧美一区二区三区在线视频 | 国产乱码精品一区二区三区中文 | 经典三级第一页 | 成人自拍视频在线 | 国产精品99久久久久久久久 | 日韩极品在线 | 欧美日韩99 | 成人精品国产一区二区4080 | 国产精选视频在线观看 | 欧美日韩视频免费观看 | 91精品网| 久久麻豆视频 | 国产视频网 |