多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

CF #301 504C C. Ice Cave BFS

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

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; }




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 免费观看中文字幕 | 国产欧美国产精品第二区 | 日本亚洲精品久久 | 色八区 | 国产一国产一区秋霞在线观看 | 国产亚洲美女精品久久久久 | 最近手机中文字幕高清1 | 最近中文字幕免费完整国语 | 国产亚洲精品美女久久久久 | 国内自拍在线观看 | 图片小说亚洲 | 日韩欧美国产一区二区三区四区 | 一区小说二区另类小说三区图 | 在线观看噜噜噜私人影院 | 日本一本高清v免费视频 | 91精品国产福利在线观看 | 自拍偷拍网| 亚洲 欧美 精品 中文第三 | 99精品国产美女福到在线不卡 | 成人免费的性色视频 | 欧美激情精品久久久久 | 叼嘿视频免费大全网站 | 国产在线精品一区二区不卡 | 亚洲午夜国产精品无卡 | 欧美同志的免费video | 日本欧美一区二区三区片 | 一二三四观看视频中文在线观看 | 伊人久久大香线焦在观看 | 欧美高清一区二区三区欧美 | 亚洲天堂网址 | 国产日产欧美精品 | 国产91精品高跟丝袜在线 | 亚洲精品福利在线 | 精品亚洲一区二区三区 | 五月婷婷激情四射 | videos雌雄同体xxxx视频 | 亚洲最大网站 | 欧美一区二区在线观看 | 国产h视频在线 | 国产精品亚洲欧美日韩一区在线 | 手机在线看片国产日韩生活片 |