坦克大战(最短时间和最短路径输出)
2013-04-12 17:22
274 查看
# include <iostream> # include <queue> # include <string.h> using namespace std; int map[302][302]; bool vis[302][302]; # include <stack> struct data { int x, y, count; bool operator < (data a)const { return count>a.count; } }dir[302][302]; int main() { int m, n, i, j, flag, t; int fang[4][2]={0, 1, 0, -1, 1, 0, -1, 0}; priority_queue<data> s; stack<data> list; data b,a,end; char c; // freopen("in.txt", "r", stdin); while (cin>>m>>n&&(m+n)) { memset(map, 0, sizeof(map)); memset(vis, 0, sizeof(vis)); for (i = 1; i<=m; i++) { for (j = 1; j<=n; j++) { cin>>c; if (c=='Y'){map[i][j]=0;b.x=i;b.y=j;b.count=0;s.push(b);vis[i][j]=1;} if (c=='S'||c=='R') {map[i][j]=-1;} if (c=='B') map[i][j]=2; if (c=='E') map[i][j]=1; if (c=='T') {map[i][j]=1;end.x=i;end.y=j;} } } while (!s.empty()) { b = s.top(); s.pop(); flag = 0; for (i = 0; i<4; i++) { a.x=b.x+fang[i][0];a.y=b.y+fang[i][1]; if (map[a.x][a.y]<=0||vis[a.x][a.y]) {continue;} vis[a.x][a.y]=1; a.count=b.count+map[a.x][a.y]; dir[a.x][a.y].x=b.x; dir[a.x][a.y].y=b.y; if (a.x==end.x&&a.y==end.y) {flag=1;break;} s.push(a); } if (flag) break; } if (!flag) cout<<"-1"<<endl; else cout<<a.count<<endl; while (!s.empty()) s.pop(); while (end.x!=0||end.y!=0) { list.push(end); t = end.x; end.x=dir[end.x][end.y].x; end.y=dir[t][end.y].y; } while (!list.empty()) { cout<<list.top().x<<" "<<list.top().y<<endl; list.pop(); } } return 0; }
相关文章推荐
- LA 2957 最大流,最短时间,输出路径
- HDU 3790 最短路径问题(Dijkstra,要求距离和时间都最短)
- POJ 1606 Jugs(BFS:找最短路径并输出)
- Java实现Dijkstra输出最短路径的实例
- 华为OJ 逛动物园-不打印路径只是简单输出最短路径的值
- 用栈解决迷宫问题(输出所有路径和最短路径)
- 迪杰斯特拉--- 模板(求最短路径/输出路径/所有路径都可以走的做法)
- 数据结构-关键路径 (最短时间)
- 输出迷宫的所有路径和最短路径
- POJ 3984---迷宫问题(BFS,迷宫最短路径且输出路径)
- 迪杰斯特拉--- 模板(求最短路径/输出路径/所有路径都可以走的做法)
- 城市交通网(动态规划,最短路径,输出最短路径)
- Dijkstra算法求最短距离并输出路径(Java实现)
- 输出迷宫的所有路径和最短路径
- 设计一个算法,採用BFS方式输出图G中从顶点u到v的最短路径(不带权的无向连通图G採用邻接表存储)
- 【天梯赛】L2-001. 紧急救援(dijkstra算法找最短路和最短路径数 + 输出路径)
- Dijkstra求最短路的条数,并输出最短路径和最短路经过的点的最大和
- 输入一个矩阵,输入初始坐标和目的坐标,输出最短路径(之一)及路径的各个坐标
- 课程设计 最小时间 最短路径 模板 .
- hdu 1358 floyd+输出字典需最小最短路径