acwing 173 矩阵距离

简介: acwing 173 矩阵距离

173. 矩阵距离 - AcWing题库

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std ;
const int N = 1010 ;
int d[4][2] = {{1,0},{-1,0},{0,-1},{0,1}} ;
struct node{
  int x,  y ;
  node(int xx ,int yy ){
    x = xx , y = yy ;
  }
};
char g[N][N] ;
int n , m ;
int dis[N][N] ;
int v[N][N] ;
queue<node> q ;
void bfs(){
  while(!q.empty()){
    node now = q.front() ;
    q.pop() ;
    int x = now.x , y = now.y ;
    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>=m||dis[tx][ty]!=-1) continue ;
      dis[tx][ty] = dis[x][y] + 1 ;
      q.push(node(tx,ty)) ;
    }
  }
}
int main(){
  cin >> n >> m ;
  memset(dis,-1,sizeof(dis)) ;
  for(int i = 0 ; i < n ;i ++) cin >> g[i] ;
  for(int i = 0 ; i < n ; i++){
    for(int j = 0 ; j < m ;j ++){
      if(g[i][j] == '1') dis[i][j] = 0 , q.push(node(i,j)) ;
    } 
  }
  bfs() ;
  for(int i = 0 ; i < n ; i ++){
    for(int j = 0 ; j < m ; j ++){
      cout << dis[i][j] << " " ;
    }cout << endl ;
  }
} 
目录
相关文章
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
527 43
|
机器学习/深度学习 IDE 开发工具
基于OpenCV的车牌识别系统源码分享
基于OpenCV的车牌识别系统主要利用图像边缘和车牌颜色定位车牌,再利用OpenCV的SVM识别具体字符,从而达到车牌识别的效果。
726 4
基于OpenCV的车牌识别系统源码分享
写一个数据备份的脚本
请提供需要编写简介的具体内容,以便我为您完成任务。
ossutil cp 百万级别文件夹无反应
在处理文件夹上传时,小文件夹的上传过程顺畅无阻,但大文件夹的上传却会出现卡顿现象。
|
数据库连接 PHP 开发者
PHP中的魔术方法与它们的妙用
【10月更文挑战第2天】 在PHP编程中,魔术方法是一种特殊的方法,以双下划线(__)开头。它们为开发者提供了便捷的方式来管理类的行为,特别是在处理对象的初始化、序列化和克隆等方面。本文将介绍几个常见的魔术方法及其实际应用,助你在日常开发中游刃有余。
186 3
|
存储 JavaScript 数据库
云数据库的使用
云数据库的使用
171 0
|
前端开发 Python
Python Tricks-- Abstract Base Classes Keep Inheritance in Check
Python Tricks-- Abstract Base Classes Keep Inheritance in Check
159 1
【LeetCode 53】39.组合总和
【LeetCode 53】39.组合总和
205 0
Leetcode第十八题(四数之和)
这篇博客介绍了LeetCode第18题“四数之和”的解法,通过排序和双指针技术来找出数组中所有和为特定值的四个不同元素的组合。
202 0

热门文章

最新文章