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 ;
  }
}
目录
相关文章
|
弹性计算 监控 负载均衡
|
2月前
|
存储 机器学习/深度学习 人工智能
软考中级软件设计师专项-数据结构与算法上篇
软件设计师考试数据结构模块涵盖数组、链表、栈、队列、树、图等基础结构及其操作,重点考查二分查找、快排与归并排序、树/图的DFS/BFS遍历算法,要求掌握时间与空间复杂度分析,理解哈希、堆的应用场景,强调通过合理选择数据结构优化程序性能,解决存储管理与计算效率问题,为系统设计奠定核心逻辑基础。
461 1
软考中级软件设计师专项-数据结构与算法上篇
|
自然语言处理 算法 大数据
Python大数据:jieba分词,词频统计
实验目的 学习如何读取一个文件 学习如何使用DataFrame 学习jieba中文分词组件及停用词处理原理 了解Jupyter Notebook 概念 中文分词 在自然语言处理过程中,为了能更好地处理句子,往往需要把句子拆开分成一个一个的词语,这样能更好的分析句子的特性,这个过程叫就叫做分词。
9644 0
|
11月前
|
人工智能 Java API
教你自创工作流,赋予AI助理个性化推荐超能力
本文详细介绍了使用Spring AI Alibaba构建AI助理的全过程,涵盖从基本流程设计到实际操作实现的各个方面。文章首先回顾了前期工作,包括旅游攻略、天气查询和个人待办事项等功能模块的设计与实现。接着,深入探讨了工作流的实现细节,如事件封装优化、工作流节点创建及复杂工作流的高效管理。最后,通过实际项目启动与运行测试,展示了AI助理的实际效果,验证了系统的稳定性和可扩展性。本文不仅适合Java开发者学习AI技术,也为后续的优化和功能拓展提供了宝贵的经验。
1431 8
教你自创工作流,赋予AI助理个性化推荐超能力
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
1575 1
|
机器学习/深度学习 人工智能 自然语言处理
python如何实现AI问答与举例
python如何实现AI问答与举例
317 0
|
数据安全/隐私保护
注册Github账号详细过程
注册GitHub账号前,请备妥有效电子邮件地址以接收验证信,设定独特的用户名(仅含字母、数字或单连字符,不以连字符起始或结束),并创建具有一定复杂度的密码。接着,访问GitHub官网(`https://github.com/`),点击右上角的“Sign up”进入注册页面。在此页面填写用户名、电子邮箱与密码,选择是否接收产品更新及公告,通过人机验证后提交。最后,通过注册邮箱内的验证链接完成验证,即可启用您的GitHub账号。
1327 0
|
前端开发 JavaScript 搜索推荐
webgl canvas系列——animation中基本旋转、平移、缩放(模拟冒泡排序过程)
webgl canvas系列——animation中基本旋转、平移、缩放(模拟冒泡排序过程)
286 1
webgl canvas系列——animation中基本旋转、平移、缩放(模拟冒泡排序过程)
|
数据采集 存储 大数据
Python爬虫:数据获取与解析的艺术
本文介绍了Python爬虫在大数据时代的作用,重点讲解了Python爬虫基础、常用库及实战案例。Python因其简洁语法和丰富库支持成为爬虫开发的优选语言。文中提到了requests(发送HTTP请求)、BeautifulSoup(解析HTML)、Scrapy(爬虫框架)、Selenium(处理动态网页)和pandas(数据处理分析)等关键库。实战案例展示了如何爬取电商网站的商品信息,包括确定目标、发送请求、解析内容、存储数据、遍历多页及数据处理。最后,文章强调了遵守网站规则和尊重隐私的重要性。
271 2
|
定位技术
GIS系列专题(2):Clipper计算机图形库使用说明(Vatti‘s clipping algorithm)
GIS系列专题(2):Clipper计算机图形库使用说明(Vatti‘s clipping algorithm)
2402 0
GIS系列专题(2):Clipper计算机图形库使用说明(Vatti‘s clipping algorithm)