bfs+STL cf242c
2015-08-19 10:39
267 查看
#include <iostream> #include <map> #include <cstdio> #include <queue> using namespace std; map<int, map<int,int> >mp; queue<int> q; int main() { int x0,y0,x1,y1,n; while(scanf("%d%d%d%d%d",&x0,&y0,&x1,&y1,&n)!=EOF) { int r,a,b; for(int i=0;i<n;i++) { scanf("%d%d%d",&r,&a,&b); for(int t=a;t<=b;t++) { mp[r][t]=-1; } } q.push(x0); q.push(y0); q.push(0); int ans=-1; while(!q.empty()) { int tx=q.front(); q.pop(); int ty=q.front(); q.pop(); int cnt=q.front(); q.pop(); if(tx==x1&&ty==y1) { ans=cnt; break; } for(int i=-1;i<=1;i++) { for(int j=-1;j<=1;j++) { if(i==0&&j==0) continue; if(mp[tx+i][ty+j]==-1) { mp[tx+i][ty+j]=1; q.push(tx+i); q.push(ty+j); q.push(cnt+1); } } } } cout<<ans<<endl; } return 0; }
View Code
相关文章推荐
- 移动端特权:100元学习卡等你拿!!!
- Cow Hurdles
- Basic Calculator
- Activity被回收导致fragment的getActivity为null的解决办法
- [iOS]CoreText 学习笔记(1)
- Linq中使用Left Join
- 剑指offer——面试题26:复杂链表的复制
- 解决SQL Server无法启动的小技巧
- 最新版ffmpeg源码分析二:transcode()函数
- poj3296--Rinse(三分)
- 关于对象实例序列化加密解密并写入文件的技巧
- Linux 信号列表
- 经典SQL语句大全(基础篇)
- 一个例子说明虚函数
- React-Knockout无缝粘合,JavaScript项目MVVM框架下的控件化
- av_read_frame 连续读包出现EOF的问题
- Web前端代码规范与页面布局
- jquery unbind 和off的区别(转)
- UVA196-Spreadsheet(拓扑排序)
- linux配置java环境变量(详细)