博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdoj 1026 搜索
阅读量:4216 次
发布时间:2019-05-26

本文共 2032 字,大约阅读时间需要 6 分钟。

#include
#include
#include
using namespace std;const int INF = 9999999;const int MAX = 102;struct Node{ int x, y; int step; int prex, prey; char c;};struct cmp{ bool operator () (const Node &a, const Node &b){ return a.step > b.step; }};Node map[MAX][MAX];int n, m;int flag;int dir[4][2] = {
{1,0},{-1,0},{0,1},{0,-1}}; priority_queue
,cmp> pq;//忘记声明变量了 int sec;int bfs() { Node node; while(!pq.empty())//清空内存 pq.pop(); map[0][0].step = 0;//开始的step为0 pq.push(map[0][0]); while(!pq.empty()){ node = pq.top(); pq.pop(); if(node.x == n-1 && node.y == m-1){ flag = 1; return node.step; } for(int i = 0; i < 4; i++ ){ int nx = node.x + dir[i][0]; int ny = node.y + dir[i][1]; if(nx < 0 || nx >= n || ny < 0 || ny >= m || map[nx][ny].c =='X') continue; if(map[nx][ny].c == '.' && map[nx][ny].step > node.step+1){ map[nx][ny].step = node.step + 1; map[nx][ny].prex = node.x; map[nx][ny].prey = node.y; pq.push(map[nx][ny]); } else if(map[nx][ny].c >='1'&&map[nx][ny].c <='9' && map[nx][ny].step > node.step+map[nx][ny].c-'0'+1){ map[nx][ny].step = node.step + map[nx][ny].c-'0' + 1; map[nx][ny].prex = node.x; map[nx][ny].prey = node.y; pq.push(map[nx][ny]); } } } return -1; }void printPath(int x, int y) { if(x == 0 && y == 0) return ; printPath(map[x][y].prex,map[x][y].prey); printf("%ds:(%d,%d)->(%d,%d)\n",sec++,map[x][y].prex,map[x][y].prey,x,y); if(map[x][y].c >= '1' && map[x][y].c <= '9'){ int t = map[x][y].c-'0'; while(t--){ printf("%ds:FIGHT AT (%d,%d)\n",sec++,x,y); } } } int main() { while(scanf("%d%d",&n,&m) != EOF){ int i; // getchar(); for(i = 0; i < n; ++i ){ getchar();//每行末尾都有 换行符 for(int j = 0; j < m; ++j){ map[i][j].c = getchar(); map[i][j].x = i; map[i][j].y = j; map[i][j].step = INF;//step无穷大 代替了 vis } }// for(int i = 0; i < n; i++ ){// for(int j = 0; j < m; ++j){// cout <
<<"";// }// cout <

转载地址:http://rlimi.baihongyu.com/

你可能感兴趣的文章
自动驾驶汽车传感器数字孪生建模(一)
查看>>
自动驾驶汽车传感器数字孪生建模(二)
查看>>
车载数字孪生预期功能安全未知危害分析技术
查看>>
自动驾驶汽车以太网数字孪生建模(一)
查看>>
自动驾驶汽车以太网数字孪生建模(二)
查看>>
初识软件定义汽车
查看>>
科普 | 自动驾驶预期功能安全(二)
查看>>
轩辕实验室丨SAE J3061汽车信息安全标准解读
查看>>
轩辕实验室丨欧盟EVITA项目预研 第一章(一)
查看>>
轩辕实验室丨欧盟EVITA项目预研 第一章(二)
查看>>
轩辕实验室丨欧盟EVITA项目预研 第一章(三)
查看>>
专利 | 一种基于深度学习的车载CAN总线入侵检测方法
查看>>
VCU解决方案及核心L9788复杂驱动功能安全审计启动
查看>>
助力“探月工程”的单元测试工具可10倍提升测试效率
查看>>
构建实时数仓 - 当 TiDB 偶遇 Pravega
查看>>
TiDB 容器化部署面面观丨「能量钛」圆桌论坛回顾
查看>>
TiDB 在网易游戏的应用实践
查看>>
迁移实战:Discourse 从 PostgreSQL 到 MySQL 到 TiDB丨AskTUG 论坛背后的故事
查看>>
TiDB Operator 源码阅读 (四) 组件的控制循环
查看>>
TiDB 5.1 发版,打造更流畅的企业级数据库体验
查看>>