算法提高之矩陣距離

算法提高之矩陣距離

  • 核心思想:多源bfs

    • 從多個源頭做bfs,求距離

    • 在這里插入圖片描述

    • 先把所有1的坐標存入隊列 再把所有1連接的位置存入 一層一層求

  •   #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 1010;#define x first#define y secondtypedef pair<int, int> PII;int dist[N][N];int n,m;int hh,tt=-1;char g[N][N];PII p[N*N];int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};void bfs(){memset(dist,-1,sizeof dist);for(int i=0;i<n;i++)for(int j=0;j<m;j++)if(g[i][j] == '1')  //把所有1的位置放入{p[++tt] = {i,j};dist[i][j] = 0;  //距離初始化為0}while(hh<=tt){auto t = p[hh++];for(int i=0;i<4;i++){int x = t.x+dx[i],y = t.y+dy[i];if(x<0 || x>=n || y<0 || y>= m || dist[x][y] != -1) continue;dist[x][y] = dist[t.x][t.y] + 1;p[++tt] = {x,y};}}}int main(){cin>>n>>m;for(int i=0;i<n;i++)cin>>g[i];bfs();for(int i=0;i<n;i++){for(int j=0;j<m;j++)cout<<dist[i][j]<<" ";cout<<endl;}}
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10611.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10611.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10611.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kafka 面試題(八)

1. Kafka&#xff1a;硬件配置選擇和調優的建議 &#xff1f; Kafka的硬件配置選擇和調優是確保Kafka集群高效穩定運行的關鍵環節。以下是一些建議&#xff1a; 硬件配置選擇&#xff1a; 內存&#xff08;RAM&#xff09;&#xff1a;建議至少使用32GB內存的服務器。為Kafk…

Web3Tools - 助記詞生成

Web3Tools - 助記詞生成工具 本文介紹了一個簡單的助記詞生成工具&#xff0c;使用 React 和 Material-UI 構建。用戶可以選擇助記詞的語言和長度&#xff0c;然后生成隨機的助記詞并顯示在頁面上 功能介紹 選擇語言和長度&#xff1a; 用戶可以在下拉菜單中選擇助記詞的語言&…

uniapp 圖片添加水印代碼封裝(優化版、圖片上傳壓縮、生成文字根據頁面自適應比例、增加文字背景色

uniapp 圖片添加水印代碼封裝(優化版、圖片上傳壓縮、生成文字根據頁面自適應比例、增加文字背景色 多張照片上傳封裝 <template><view class"image-picker"><uni-file-picker v-model"imageValue" :auto-upload"false" :title…

關于服務端接口知識的匯總

大家好&#xff0c;今天給大家分享一下之前整理的關于接口知識的匯總&#xff0c;對于測試人員來說&#xff0c;深入了解接口知識能帶來諸多顯著的好處。 一、為什么要了解接口知識&#xff1f; 接口是系統不同模塊之間交互的關鍵通道。只有充分掌握接口知識&#xff0c;才能…

http-server實現本地服務器

要實現一個本地服務器&#xff0c;你可以使用Node.js的http-server模塊。首先&#xff0c;確保你已經安裝了Node.js和npm。然后&#xff0c;按照以下步驟操作&#xff1a; 打開終端或命令提示符&#xff0c;進入你想要作為服務器根目錄的文件夾&#xff1b;運行以下命令安裝ht…

Axure PR 10 制作頂部下拉三級菜單和側邊三級菜單教程和源碼

在線預覽地址&#xff1a;Untitled Document 2.側邊三級下拉菜單 在線預覽地址&#xff1a;Untitled Document 文件包和教程下載地址&#xff1a;https://pan.quark.cn/s/77e55945bfa4 程序員必備資源網站&#xff1a;天夢星服務平臺 (tmxkj.top)

Linux x86_64 dump_stack()函數基于FP棧回溯

文章目錄 前言一、dump_stack函數使用二、dump_stack函數源碼解析2.1 show_stack2.2 show_stack_log_lvl2.3 show_trace_log_lvl2.4 dump_trace2.5 print_context_stack 參考資料 前言 Linux x86_64 centos7 Linux&#xff1a;3.10.0 一、dump_stack函數使用 dump_stack函數…

Unity開發中導彈路徑散射的原理與實現

Unity開發中導彈路徑散射的原理與實現 前言邏輯原理代碼實現導彈自身腳本外部控制腳本 應用效果結語 前言 前面我們學習了導彈的追蹤的效果&#xff0c;但是在動畫或游戲中&#xff0c;我們經常可以看到導彈發射后的彈道是不規則的&#xff0c;扭扭曲曲的飛行&#xff0c;然后擊…

數字生態系統的演進與企業API管理的關鍵之路

數字生態系統的演進與企業API管理的關鍵之路 在數字化時代&#xff0c;企業正經歷著一場轉型的浪潮&#xff0c;而API&#xff08;應用程序編程接口&#xff09;扮演著至關重要的角色。API如同一座橋梁&#xff0c;將組織內部的價值轉化為可市場化的產品&#xff0c;從而增強企…

韓國站群服務器在全球網絡架構中的重要作用?

韓國站群服務器在全球網絡架構中的重要作用? 在全球互聯網的蓬勃發展中&#xff0c;站群服務器作為網絡架構的核心組成部分之一&#xff0c;扮演著至關重要的角色。韓國站群服務器以其卓越的技術實力、優越的地理位置、穩定的網絡基礎設施和強大的安全保障能力&#xff0c;成…

LeetCode 題目 118:楊輝三角

題目描述 給定一個非負整數 numRows&#xff0c;生成楊輝三角的前 numRows 行。在楊輝三角中&#xff0c;每個數是它左上方和右上方的數的和。 楊輝三角解析 在這個詳解中&#xff0c;我們將使用 ASCII 圖形來說明楊輝三角的構建過程&#xff0c;包括逐行添加新的行的過程。…

250 基于matlab的5種時頻分析方法((短時傅里葉變換)STFT

基于matlab的5種時頻分析方法&#xff08;(短時傅里葉變換)STFT,Gabor展開和小波變換,Wigner-Ville&#xff08;WVD&#xff09;,偽Wigner-Ville分布(PWVD),平滑偽Wigner-Ville分布&#xff08;SPWVD&#xff09;,每條程序都有詳細的說明&#xff0c;設置仿真信號進行時頻輸出。…

Parted分區大容量磁盤

創建了新的虛擬磁盤10T , 掛載后分區格式化一.fdisk無法創建大容量的分區 Fileserver:~ # fdisk /dev/sdb Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device …

使用html和css實現個人簡歷表單的制作

根據下列要求&#xff0c;做出下圖所示的個人簡歷&#xff08;表單&#xff09; 表單要求 Ⅰ、表格整體的邊框為1像素&#xff0c;單元格間距為0&#xff0c;表格中前六列列寬均為100像素&#xff0c;第七列 為200像素&#xff0c;表格整體在頁面上居中顯示&#xff1b; Ⅱ、前…

git提交代碼異常報錯error:bad signature 0x00000000

報錯信息 error:bad signature 0x00000000 異常原因 git 提交過程中異常關機或重啟&#xff0c;造成當前項目工程中的.git/index 文件損壞&#xff0c;無法提交 解決步驟 刪除.git/index文件 rm -f .git/index 重啟git git reset

Java 【數據結構】 哈希(Hash超詳解)HashSetHashMap【神裝】

登神長階 第十神裝 HashSet 第十一神裝 HashMap 目錄 &#x1f454;一.哈希 &#x1f9e5;1.概念 &#x1fa73;2.Object類的hashCode()方法: &#x1f45a;3.String類的哈希碼: &#x1f460;4.注意事項: &#x1f3b7;二.哈希桶 &#x1fa97;1.哈希桶原理 &#x…

Bert基礎(二十二)--Bert實戰:對話機器人

一 、概念簡介 1.1 生成式對話機器人 1.1.1什么是生成式對話機器人? 生成式對話機器人是一種能夠通過自然語言交互來理解和生成響應的人工智能系統。它們能夠進行開放域的對話,即在對話過程中,機器人可以根據用戶的需求和上下文信息,自主地生成新的、連貫的回復,而不僅…

如何使用CertCrunchy從SSL證書中發現和識別潛在的主機名稱

關于CertCrunchy CertCrunchy是一款功能強大的網絡偵查工具&#xff0c;該工具基于純Python開發&#xff0c;廣大研究人員可以利用該工具輕松從SSL證書中發現和識別潛在的主機信息。 支持的在線源 該工具支持從在線源或給定IP地址范圍獲取SSL證書的相關數據&#xff0c;并檢索…

大數據測試

1、前言 大數據測試是對大數據應用程序的測試過程&#xff0c;以確保大數據應用程序的所有功能按預期工作。大數據測試的目標是確保大數據系統在保持性能和安全性的同時&#xff0c;平穩無差錯地運行。 大數據是無法使用傳統計算技術處理的大型數據集的集合。這些數據集的測試涉…

Foxmail使用經驗總結

本篇博客將詳盡講解如何利用Foxmail進行高效的郵件管理&#xff0c;以及一些實用的使用技巧&#xff0c;讓郵件管理變得更為高效和有序。 1. 賬戶設置與管理 多賬戶整合&#xff1a;Foxmail支持多個郵件賬戶同時管理&#xff0c;用戶可以將個人和工作郵箱整合在同一個界面&am…