hdu2822 Dogs【优先队列】
来源:互联网 发布:织梦cms好用吗 编辑:程序博客网 时间:2024/06/01 07:45
#include<bits/stdc++.h>using namespace std;struct node{ int x,y,t; friend bool operator <(node n1,node n2) { return n2.t<n1.t; }}tp,p;char g[1024][1024];int n,m,a0,a1,b0,b1,vis[1024][1024];int dx[]={0,0,-1,1};int dy[]={1,-1,0,0};int bfs(){ memset(vis,0xff,sizeof(vis)); priority_queue<node>q; vis[a0][b0]=0; tp.x=a0; tp.y=b0; tp.t=0; q.push(tp); while(!q.empty()) { tp=q.top(); q.pop(); if(tp.x==a1&&tp.y==b1) return tp.t; for(int i=0;i<4;i++) { p.x=tp.x+dx[i]; p.y=tp.y+dy[i]; p.t=tp.t; if(p.x<1||p.x>n||p.y<1||p.y>m) continue; if(g[p.x][p.y]=='.') p.t++; if(vis[p.x][p.y]>p.t||vis[p.x][p.y]==-1) { vis[p.x][p.y]=p.t; q.push(p); } } }}int main(){ while(~scanf("%d%d",&n,&m)) { if(n==0&&m==0) break; for(int i=1;i<=n;i++) scanf("%s",g[i]+1); scanf("%d%d",&a0,&b0); scanf("%d%d",&a1,&b1); printf("%d\n",bfs()); } return 0;}
0 0
- hdu2822((Dogs))优先队列
- hdu2822 Dogs【优先队列】
- hdu 2822 Dogs 优先队列
- hdu 2822 Dogs(优先队列)
- hdu 2822 Dogs(bfs+优先队列)
- hdoj 2822 Dogs(BFS+优先队列)
- hdu 2822 Dogs(BFS + 优先队列)
- hdu 2824 Dogs(BFS, 优先队列优化)
- hdu 2822 Dogs (优先队列 + BFS)
- hdu 2822 Dogs【优先队列+Bfs】
- HDU 2822 Dogs(优先队列)
- hdu2822
- hdu 1008 Dogs 广度优先搜索
- hdu2822(会双搜后再写次)
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 在服务的入口req处报流水还是在出口rsp处报流水?
- 【iReport+JasperReport】2.在Java工程中利用jasper导出PDF报表
- hihoCoder 1089 : 最短路径·二:Floyd算法(水题,练手)
- 一不小心,七月了
- Lynx (纯文本网页浏览器)
- hdu2822 Dogs【优先队列】
- Android基础知识总结
- HDU2028 Lowest Common Multiple Plus
- HDU 1079 Calendar Game(博弈找规律)
- Android 2D绘图解析之 Path
- 2014.12.17 第三届校园科技节-电子科技大赛
- Android开发中List的remove()方法
- HttpClient4.3的使用
- 类、对象、包