Codeforces Round #301 (Div. 2) C. Ice Cave(BFS)
来源:互联网 发布:linux内核优化 编辑:程序博客网 时间:2024/05/21 22:38
题目地址:http://codeforces.com/problemset/problem/540/C
思路:从起始点走,每次走到一个‘.'点,则将其置为‘X'并加入队列,当搜索到节点为’X'且该节点为终点时,则成功抵达。若不存在,则无法到达。
#include<cstdio>#include<cstdlib>#include<queue>#include<cstring>#include<iostream>#include<algorithm>using namespace std;struct Node{ int x,y;};const int dx[]={0,0,-1,1};const int dy[]={-1,1,0,0};int stx,sty,edx,edy,n,m;char g[550][550];queue<Node> q;int solve(){ g[stx][sty]='X'; Node tmp; tmp.x=stx,tmp.y=sty; q.push(tmp); while(!q.empty()) { Node now=q.front(); q.pop(); for(int i=0;i<4;i++) { int xx=now.x+dx[i]; int yy=now.y+dy[i]; if(xx>=1&&xx<=n&&yy>=1&&yy<=m) { if(g[xx][yy]=='X') { if(xx==edx&&yy==edy) return 1; continue; } g[xx][yy]='X'; Node nt; nt.x=xx,nt.y=yy; q.push(nt); } } } return 0;}int main(){ scanf("%d%d",&n,&m); getchar(); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) scanf("%c",&g[i][j]); getchar(); } scanf("%d%d",&stx,&sty); scanf("%d%d",&edx,&edy); if(solve()) printf("YES\n"); else printf("NO\n"); return 0;}
0 0
- Codeforces Round #301 (Div. 2) C. Ice Cave(BFS)
- Codeforces Round #301 (Div. 2)C - Ice Cave-bfs
- Codeforces Round #301 (Div. 2)C. Ice Cave(广搜BFS)
- Codeforces 301(div 2) C. Ice Cave
- C. Ice Cave (CF #301 (Div. 2) 搜索bfs)
- 【Codeforces】C. Ice Cave(bfs)
- CodeForces 540 C Ice Cave (BFS)
- Codeforces 540C Ice Cave (BFS)
- #301 (div.2) C. Ice Cave
- CodeForces 540C Ice Cave (BFS)
- codeforces 540C Ice Cave【BFS】
- cf#301-C. Ice Cave-BFS
- Ice Cave-CF-C(bfs)
- Ice Cave(BFS)
- CodeForces-540C//Codeforces Round #301 (Div. 2)C BFS
- CodeForces 540C Ice Cave
- CF #301 504C C. Ice Cave BFS
- Codeforces Round #134 (Div. 2)C. Ice Skating
- netty 粘包问题处理
- Java 拷贝文件夹
- iOS开发实用知识点记录(持续更新)
- Arduino软串口调试
- FFmpeg 基本用法
- Codeforces Round #301 (Div. 2) C. Ice Cave(BFS)
- JavaScript探秘:for-in循环(for-in Loops)
- 《机器学习》学习笔记之决策树
- 浅析Python中的struct模块
- 渐渐明白习以为常的珍贵
- CentOS7中源码编译安装MySQL5.7.x
- 关于Eclipse创建Android项目时,会多出一个appcompat_v7的问题
- Linux(LAMPP)下使用MySQL时不能正常显示中文的解决办法
- 使用命令行上传代码到github