hdu1026
来源:互联网 发布:北京学软件测试 编辑:程序博客网 时间:2024/05/22 07:42
进bfs了。。。
蒟蒻的自我拯救。。。
#include<cstdio> #include<cstring> #include<queue> using namespace std; int mak[110][110]; int d[4][2]={1,0,-1,0,0,-1,0,1}; int t,n,m; struct node { int x,y,time; friend int operator<(node a,node b) { return a.time>b.time; } }; struct out { char c; int lx,ly,fight; }map[110][110]; /* struct cmp { bool operator()(const node &a,const node &b) { return a.time>b.time; } }; */ priority_queue<node> q; bool find(node first) { node now,next; while(!q.empty())q.pop(); if(map[first.x][first.y].c>='0'&&map[first.x][first.y].c<='9') { map[first.x][first.y].fight=map[first.x][first.y].c-'0'; first.time=map[first.x][first.y].fight; } else first.time=0; q.push(first); while(!q.empty()) { now=q.top(); q.pop(); if(now.x==0&&now.y==0) { t=now.time; return true; } for(int i=0;i<4;++i) { next.x=now.x+d[i][0]; next.y=now.y+d[i][1]; if(next.x<0||next.y<0||next.x==n||next.y==m||map[next.x][next.y].c=='X'||mak[next.x][next.y]) continue; mak[next.x][next.y]=1; next.time=now.time+1; if(map[next.x][next.y].c>='0'&&map[next.x][next.y].c<='9') { map[next.x][next.y].fight=map[next.x][next.y].c-'0'; next.time+=map[next.x][next.y].fight; } map[next.x][next.y].lx=now.x; map[next.x][next.y].ly=now.y; q.push(next); } } return false; } int main() { node first; // freopen("F://cs.txt","r",stdin); while(scanf("%d%d",&n,&m)!=EOF) { getchar(); memset(mak,0,sizeof(mak)); for(int i=0;i<n;++i) { for(int j=0;j<m;++j) { scanf("%c",&map[i][j].c); map[i][j].fight=0; } getchar(); } first.x=n-1; first.y=m-1; first.time=0; if(find(first)) { printf("It takes %d seconds to reach the target position, let me show you the way.\n",t); int k=1,x=0,y=0; int nx,ny; while(k<=t) { nx=map[x][y].lx,ny=map[x][y].ly; printf("%ds:(%d,%d)->(%d,%d)\n",k++,x,y,nx,ny); while(map[nx][ny].fight) { printf("%ds:FIGHT AT (%d,%d)\n",k++,nx,ny); --map[nx][ny].fight; } x=nx;y=ny; } } else puts("God please help our poor hero."); puts("FINISH"); } return 0; }
0 0
- hdu1026
- hdu1026
- hdu1026
- HDU1026
- hdu1026
- hdu1026
- HDU1026
- HDU1026
- hdu1026
- HDU1026
- HDU1026
- hdu1026
- hdu1026题解
- 题解HDU1026
- hdu1026 bfs
- hdu1026和hdu1242
- hdu1026还是搜索
- hdu1026 BFS+记录路径
- PHP中使用cURL实现Get和Post请求的方法
- Centos6.5安装OpenLDAP
- python学习-property
- request和response中一些方法的区别
- 【精】适配器模式装饰模式
- hdu1026
- Angular学习(八)——List、Table和其他重复元素
- Drupal7 集成 Solr4.4模块
- hdu 2222 Keywords Search ac自动机模板
- html5 学习之路 二(canvas)
- 最小生成树
- 可变参数学习笔记 转载
- [ZOJ 3353] Chess Board [搜索+状态压缩]
- 二叉查找树