acwing 1076 迷宫问题

简介: acwing 1076 迷宫问题

活动 - AcWing

#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
#include<vector>
 
using namespace std ;
const int N = 1010 ;
int d[4][2] = {{-1,0},{0,1},{1,0},{0,-1}} ;
struct node{
  int x ,  y ;
 
};
queue<node> q;
int n;
int g[N][N] ;
node pre[N][N] ;
int dis[N][N] ;
vector<node> fa ;
void bfs(){
  q.push({0,0}) ;
  dis[0][0] = 0 ;
  while(!q.empty()){
    node now = q.front() ;
    q.pop() ;
    int x = now.x , y = now.y ;
    if(x == n-1 && y == n-1){
      int tmx = x , tmy = y;
      while(tmx != 0||tmy != 0){
        node b = {tmx,tmy} ;
        fa.push_back(b) ;
        node a = pre[tmx][tmy] ;
        tmx = a.x; tmy = a.y ;
      }
      fa.push_back({0,0}) ;
      return ;
    }
    for(int i = 0 ; i < 4 ; i ++){
      int tx = x + d[i][0] , ty = y + d[i][1] ;
      if(tx<0||tx>=n||ty<0||ty>=n||g[tx][ty]||dis[tx][ty]!=-1) continue ;
      q.push({tx,ty}) ;
      dis[tx][ty] = dis[x][y] + 1 ;
      pre[tx][ty] = {x,y} ;
    }
  }
}
int main(){
  cin >> n  ;
  for(int i = 0 ; i < n ;i ++){
    for(int j = 0 ; j < n ; j ++){
      cin >> g[i][j] ;
    }
  }
  memset(dis,-1,sizeof(dis)) ;
  bfs() ;
  for(int i = fa.size()-1 ; i >=0 ; i --){
    cout << fa[i].x << " " << fa[i].y << endl ;
  }
}
目录
相关文章
|
弹性计算 监控 负载均衡
|
存储 人工智能 大数据
云计算的详细介绍
云计算的详细介绍
2551 1
|
自然语言处理 算法 大数据
Python大数据:jieba分词,词频统计
实验目的 学习如何读取一个文件 学习如何使用DataFrame 学习jieba中文分词组件及停用词处理原理 了解Jupyter Notebook 概念 中文分词 在自然语言处理过程中,为了能更好地处理句子,往往需要把句子拆开分成一个一个的词语,这样能更好的分析句子的特性,这个过程叫就叫做分词。
10142 0
|
10月前
|
存储 机器学习/深度学习 人工智能
软考中级软件设计师专项-数据结构与算法上篇
软件设计师考试数据结构模块涵盖数组、链表、栈、队列、树、图等基础结构及其操作,重点考查二分查找、快排与归并排序、树/图的DFS/BFS遍历算法,要求掌握时间与空间复杂度分析,理解哈希、堆的应用场景,强调通过合理选择数据结构优化程序性能,解决存储管理与计算效率问题,为系统设计奠定核心逻辑基础。
873 1
软考中级软件设计师专项-数据结构与算法上篇
|
人工智能 Java API
教你自创工作流,赋予AI助理个性化推荐超能力
本文详细介绍了使用Spring AI Alibaba构建AI助理的全过程,涵盖从基本流程设计到实际操作实现的各个方面。文章首先回顾了前期工作,包括旅游攻略、天气查询和个人待办事项等功能模块的设计与实现。接着,深入探讨了工作流的实现细节,如事件封装优化、工作流节点创建及复杂工作流的高效管理。最后,通过实际项目启动与运行测试,展示了AI助理的实际效果,验证了系统的稳定性和可扩展性。本文不仅适合Java开发者学习AI技术,也为后续的优化和功能拓展提供了宝贵的经验。
2317 9
教你自创工作流,赋予AI助理个性化推荐超能力
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
2567 1
|
数据采集 自然语言处理 搜索推荐
Python内置函数ord()详解
`ord()` 是 Python 中用于将单个字符转换为对应 Unicode 码点的核心函数,支持 ASCII、多语言字符及特殊符号。其返回值为整数(范围 0-1114111),适用于字符编码验证、数据清洗、自定义排序、基础加解密等场景。使用时需注意参数长度必须为 1,否则会触发 `TypeError`。结合 `chr()` 函数可实现双向转换,进阶技巧包括多字节字符处理、编码范围检测及字符分类验证等。
|
缓存 easyexcel Java
狂神说POI,EasyExcel笔记及源码资料(一)
狂神说POI,EasyExcel笔记及源码资料(一)
1331 0
狂神说POI,EasyExcel笔记及源码资料(一)
|
定位技术
GIS系列专题(2):Clipper计算机图形库使用说明(Vatti‘s clipping algorithm)
GIS系列专题(2):Clipper计算机图形库使用说明(Vatti‘s clipping algorithm)
2980 0
GIS系列专题(2):Clipper计算机图形库使用说明(Vatti‘s clipping algorithm)
|
机器学习/深度学习 人工智能 自然语言处理
python如何实现AI问答与举例
python如何实现AI问答与举例
539 0

热门文章

最新文章