SPOJ-SERGRID Grid(BFS)
来源:互联网 发布:js闭包写法和释放 编辑:程序博客网 时间:2024/04/29 08:37
SPOJ-SERGRID
n×m(1≤n,m≤500)个格子,每个格子有一个数字k,在格子上可向上下左右四个方向移动k步,但不能越界,问到右下脚需要几步
bfs即可
#include <cstdio>#include <queue>using namespace std;const int maxn=507;char pic[maxn][maxn];int dis[maxn][maxn];int n,m;int dx[]={0,0,1,-1};int dy[]={1,-1,0,0};typedef pair<int,int> P;queue<P> q;int bfs(){ q.push(P(1,1)); P fr; dis[1][1]=1; while(!q.empty()) { fr=q.front(); q.pop(); int rr=fr.first,cc=fr.second; int k=pic[rr][cc]-'0'; if(k) for(int dd=0;dd<4;dd++) { int ddx=dx[dd]*k+rr,ddy=dy[dd]*k+cc; if(ddx>0&&ddx<n+1&&ddy>0&&ddy<m+1&&!dis[ddx][ddy]) { dis[ddx][ddy]=dis[rr][cc]+1; q.push(P(ddx,ddy)); if(ddx==n&&ddy==m) return dis[ddx][ddy]-1; } } } return -1;}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%s",pic[i]+1); printf("%d\n",bfs());}
0 0
- SPOJ-SERGRID Grid(BFS)
- SPOJ SERGRID Grid BFS搜索算法
- SPOJ SERGRID 【BFS】
- SPOJ SERGRID
- SPOJ-Grid ,水广搜easy bfs
- SPOJ AMR11A Magic Grid
- BFS+SPOJ AMR11J
- SPOJ 206 BITMAP (BFS)
- SPOJ LAS(BFS)
- 【SPOJ-BTCODE_A】Traversing Grid【GCD】
- SPOJ 370 SPOJ ONEZERO(BFS + 递归)
- NYOJ592 spiral grid 【BFS】
- SPOJ AMR11A Magic Grid(dp)
- SPOJ 338 Roads BFS+优先队列
- SPOJ 206 BITMAP(BFS+剪枝)
- spoj Goblin Wars(简单bfs)
- 【SPOJ-ABCPATH】ABC Path【BFS/DFS】
- SPOJ PARADOX Paradox bfs + 缩点
- Lua函数学习
- SVM 支持向量机(2) 软间隔最大化与核方法
- 论中英文写作思维与算法的关系
- Android中关于AudioFocus你所该知道的知识
- 本地环境和远程环境的maven自动部署到tomcat配置说明
- SPOJ-SERGRID Grid(BFS)
- [GUIDE]How To Port Different ROMS to Your Device (Simplest and Fastest)
- 整数划
- 手把手教你用Mysql-Cluster-7.5搭建数据库集群
- 图片转化成base64-API上传
- ES6——Day3(解构赋值的用途)
- CentOS7.2部署ELK5.2.2(yum安装)
- 1的个数
- java.util.concurrent 源码分析-包结构