2464: 中山市选[2009]小明的游戏
来源:互联网 发布:茶杯淘宝 编辑:程序博客网 时间:2024/05/01 10:18
题目链接
题目大意:棋盘,求最短路
题解:spfa
我的收获:水水水
#include<cstdio>#include<queue>int n,m,x1,y1,x2,y2;char s[505][505];int l[505][505];bool in[505][505];struct pos{ int x,y;};std::queue<pos>q;int xs[]={-1,0,1,0};int ys[]={0,-1,0,1};int main(){ while(1){ scanf("%d%d",&n,&m); if(n+m==0)break; for(int i=1;i<=n;i++)scanf("%s",s[i]+1); scanf("%d%d%d%d",&x1,&y1,&x2,&y2); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ l[i][j]=2147483647; } } l[++x1][++y1]=0; q.push((pos){x1,y1}); while(!q.empty()){ pos w=q.front();q.pop(); int x=w.x,y=w.y; in[x][y]=0; for(int i=0;i<4;i++){ int xx=x+xs[i],yy=y+ys[i]; if(!s[xx][yy])continue; if(s[xx][yy]!=s[x][y]){ if(l[x][y]+1<l[xx][yy]){ l[xx][yy]=l[x][y]+1; if(!in[xx][yy])q.push((pos){xx,yy}),in[xx][yy]=1; } }else{ if(l[x][y]<l[xx][yy]){ l[xx][yy]=l[x][y]; if(!in[xx][yy])q.push((pos){xx,yy}),in[xx][yy]=1; } } } } printf("%d\n",l[x2+1][y2+1]); } return 0;}
0 0
- BZOJ 2464 中山市选2009 小明的游戏 SPFA
- BZOJ 2464: 中山市选[2009]小明的游戏
- 2464: 中山市选[2009]小明的游戏
- BZOJ 2464 中山市选[2009]小明的游戏 SPFA
- BZOJ[2464]中山市选[2009]小明的游戏 SPFA
- bzoj 2464 中山市选[2009]小明的游戏
- [BZOJ2464]中山市选[2009]小明的游戏
- 【中山市选2009】【BZOJ2464】小明的游戏
- 【bzoj2464】【中山市选2009】【小明的游戏】【spfa】
- BZOJ2464: 中山市选[2009]小明的游戏
- BZOJ 2464 中山市选 2009 小明的游戏 最短路
- bzoj 2464: 中山市选[2009]小明的游戏 最短路
- BZOJ 2464: 中山市选[2009]小明的游戏 简单搜索
- 【BZOJ2464】【中山市选2009】小明的游戏 最短路水过
- [中山市选] 杀人游戏
- [中山市选2011]杀人游戏
- [中山市选2011]杀人游戏
- 【bzoj2441】 中山市选2011小W的问题 线段树
- MFC—— 背景添加
- java之GUI!!!
- Petri网
- C++Primer第五版 第十三章习题答案(11~20)
- PAT 1126. Eulerian Path (25)
- 2464: 中山市选[2009]小明的游戏
- Nginx进程模型和事件模型
- 边界图及四级计划
- JVM系列三:JVM参数设置、分析
- 关于ViewGroup和View事件分发机制,不深入不浅分享。
- 如何在Linux检查并使用串口
- PAT 1127. ZigZagging on a Tree (30)
- 数据库的一些知识!
- ios开发之NSString