前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

hdu1026

作者头像
@坤的
发布2018-06-04 11:03:03
1770
发布2018-06-04 11:03:03
举报
文章被收录于专栏:*坤的Blog

#include <stdio.h> #include <string.h> #include <queue> using namespace std; struct node { int x,y,step; friend bool operator<(node n1,node n2) { return n2.step<n1.step; } }; int map[105][105]; int flag[105][105]; int cnt[105][105];//记录怪的血量 int to[4][2] = {1,0,-1,0,0,1,0,-1}; int n,m,tim; int check(int x,int y) { if(x<0 || y<0 || x>=n || y>=m) return 1; if(map[x][y] == -1) return 1; return 0; } int bfs() { int i; priority_queue<node> Q; node a,next; a.x = 0; a.y = 0; a.step = 0; map[0][0] = -1; Q.push(a); while(!Q.empty()) { a = Q.top(); Q.pop(); if(a.x == n-1 && a.y == m-1) return a.step; for(i = 0; i<4; i++) { next = a; next.x+=to[i][0]; next.y+=to[i][1]; if(check(next.x,next.y)) continue; next.step =a.step+map[next.x][next.y]+1;//记录时间 map[next.x][next.y] = -1;//标记为走过 flag[next.x][next.y] = i+1;//记录朝向 Q.push(next); } } return 0; } void print(int x,int y) { int n_x,n_y; if(!flag[x][y]) return; n_x = x - to[flag[x][y]-1][0]; n_y = y - to[flag[x][y]-1][1]; print(n_x,n_y); printf("%ds:(%d,%d)->(%d,%d)\n",tim++,n_x,n_y,x,y); while(cnt[x][y]--) { printf("%ds:FIGHT AT (%d,%d)\n",tim++,x,y); } } int main() { int i,j; while(~scanf("%d%d",&n,&m)) { memset(map,0,sizeof(map)); memset(flag,0,sizeof(flag)); memset(cnt,0,sizeof(cnt)); char s[105]; for(i = 0; i<n; i++) { scanf("%s",s); for(j = 0; s[j]; j++) { if(s[j] == '.') map[i][j] = 0; else if(s[j] == 'X') map[i][j] = -1; else map[i][j] = cnt[i][j] = s[j]-'0'; } } int ans = 0; ans = bfs(); if(ans) { printf("It takes %d seconds to reach the target position, let me show you the way.\n",ans); tim = 1; print(n-1,m-1); } else printf("God please help our poor hero.\n"); printf("FINISH\n"); } return 0; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档