百练+BFS+图上visit标记嘛,因为是最短嘛,防止重复嘛
来源:互联网 发布:js正则判断数字范围 编辑:程序博客网 时间:2024/06/06 00:24
点击打开链接
#include<stdio.h>#include<stdlib.h>#include<iostream>#include<string.h>#include<cstring>#include<string>#include<algorithm>#include<math.h>#include<queue>#include<set>#define LL long long#define inf 0x3f3f3f3f#define mod 1e9+7const int maxn=205;using namespace std;int T,R,C,xx,yy;char Arr[maxn][maxn];bool vis[maxn][maxn];///标记使用bool型省空间int Move[4][2]={{-1,0},{1,0},{0,-1},{0,1}};struct Node{ int x,y,steps;};queue<Node>Q;void Search(){ for(int i=0; i<R; i++){ for(int j=0; j<C; j++){ if(Arr[i][j]=='S'){ xx=i;yy=j; return; } } }}void BFS(){ while(!Q.empty()) Q.pop(); memset(vis,0,sizeof(0)); Node temp1,temp2; temp1.x=xx,temp1.y=yy;temp1.steps=0; vis[xx][yy]=1;///为什么能标记,因为求最短步数,这个走过的一定不会走的。 Q.push(temp1); while(!Q.empty()){ temp1=Q.front();Q.pop(); if(Arr[temp1.x][temp1.y]=='E'){ printf("%d\n",temp1.steps); } for(int i=0;i<4;i++){ temp2=temp1; temp2.x+=Move[i][0];temp2.y+=Move[i][1]; if(temp2.x>=0&&temp2.x<R&&temp2.y>=0&&temp2.y<C&&!vis[temp2.x][temp2.y]&&Arr[temp2.x][temp2.y]!='#'){ temp2.steps+=1; vis[temp2.x][temp2.y]=1; Q.push(temp2); } } } printf("oop!\n");}int main(){ int i=0,j=0; scanf("%d",&T); while(T--){ scanf("%d %d",&R,&C); for(i=0;i<R;i++)scanf("%s",Arr[i]); Search(); BFS(); } return 0;}
0 0
- 百练+BFS+图上visit标记嘛,因为是最短嘛,防止重复嘛
- 百练+二分图判断+BFS染色标记
- 【hdu】Dating with girls(2) (BFS,注意visit[i][j][k],可以重复走一个位置的)
- 百练4980 拯救行动[BFS]
- 百练4980--拯救行动(BFS)
- 百练 4116 拯救行动(bfs)
- 百练+BFS+模版化解题
- hdu 4607 Park Visit(bfs)
- 点滴记录下gridview防止因为重复出现滚动条,显示不全的做法
- 前台限制默认表单重复提交(jquery 实现方式 防止因为网络延迟而产生的表单重复提交)
- 关于防止一个账号在不同机器上重复登录
- bfs 三维标记
- 百练6044--鸣人与佐助(BFS)
- 百练OJ 晶矿的个数(基础BFS)
- 百练 4116 拯救行动 【bfs的内涵理解】
- 百练+BFS实现topo_sort+两个队列存储
- 九度oj+原始一个字符串左右交换字符最少步数变成含有2012字串+bfs及字符串和整型转换以及没有标记visit数组大小,只能用stl中的vecotr,实际上set更好。有count函数
- HDU 1429 三维visit bfs + 位运算优化
- Unity3d面试3
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enable
- Redis+Spring缓存实例(windows环境,附实例源码及详解)
- 六、树和二叉树--(0)什么是树
- 安装并运行Elasticsearch
- 百练+BFS+图上visit标记嘛,因为是最短嘛,防止重复嘛
- SGU-495 Kids and Prizes(概率DP)
- leetcode——142——Linked List Cycle II
- 【DP】探索数字迷塔
- linux 硬盘分区,分区,删除分区,格式化,挂载,卸载笔记
- Android手机客户端与服务器端的信息通信交互
- yaf框架控制器中的几个函数
- visio2013产品密钥
- BZoj 1016: [JSOI2008]最小生成树计数【最小生成树】