c++迷宮問題(migong)

今天的題目叫“迷宮問題(migong)”,是“DFS深度優先搜索 遞歸”一類的。

題目描述

設有一個N*N(2<=N<10)方格的迷宮,入口和出口分別在左上角和右上角。迷宮格子中
分別放0和1,0表示可通,1表示不能,入口和出口處肯定是0。迷宮走的規則如下所示:
即從某點開始,有八個方向可走,前進方格中數字為0時表示可通過,為1時表示不可通過,要另找路徑。找出所有從入口(左上角)到出口(右上角)的路徑(不能重復),輸出路徑總數,如果無法到達,則輸出0。

輸入

第一行一個正整數n。

接下來2~n+1行 表示該迷宮。

輸出

輸出共一行,輸出路徑總數

輸入樣例
3 
0 0 0 
0 1 1 
1 0 0 
輸出樣例
2
提示

【數據范圍】2<=n<=10

解題:

#include <bits/stdc++.h>
using namespace std;
int sum,n;
bool a[15][15];
int dx[9]={0,0,0,1,-1,1,-1,1,-1};//八個方向
int dy[9]={0,1,-1,0,0,1,-1,-1,1};
void dfs(int x,int y)
{if(x==1&&y==n)//到達邊界{sum++;return;}for(int i=1;i<=8;i++)//八個方向{int tx=x+dx[i];//下一步要走的位置int ty=y+dy[i];if(tx>0&&ty>0&&tx<=n&&ty<=n&&a[tx][ty]==false){//能走a[tx][ty]=1;dfs(tx,ty);a[tx][ty]=0;//回溯}}
}
int main()
{cin >> n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin >> a[i][j];}}a[1][1]=1;dfs(1,1);cout << sum;return 0;
}

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

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

相關文章

機器學習-線性回歸(簡單回歸、多元回歸)

這一篇文章&#xff0c;我們主要來理解一下&#xff0c;什么是線性回歸中的簡單回歸和多元回歸&#xff0c;順便掌握一下特征向量的概念。 一、簡單回歸 簡單回歸是線性回歸的一種最基本形式&#xff0c;它用于研究**一個自變量&#xff08;輸入&#xff09;與一個因變量&…

Git知識分享

一、理解git首先要理清楚下面五個概念&#xff1a; 1、工作區(git add 命令之前的樣子) 2、stash 暫存(暫存工作區和暫存區的更改) 3、暫存區(git add 命令之后的存儲區, 4、本地倉庫(git commit提交的位置) 5、遠程倉庫(git push提交的位置) 二、git常用命令&#xff1a; 1、g…

2024年度技術總結——MCU與MEMS和TOF應用實踐

引言 2024年對我來說是技術成長與突破的一年。在這一年里&#xff0c;我不僅在技術領域拓展了深度和廣度&#xff0c;還通過與客戶合作的實際項目&#xff0c;成功實現了從單一MCU到MCU、MEMS與TOF技術融合的跨越。這一過程中&#xff0c;我深刻認識到&#xff0c;技術的進步不…

一句話,我讓 AI 幫我做了個 P 圖網站!

每到過節&#xff0c;不少小伙伴都會給自己的頭像 P 個圖&#xff0c;加點兒裝飾。 比如圣誕節給自己頭上 P 個圣誕帽&#xff0c;國慶節 P 個小紅旗等等。這是一類比較簡單、需求量卻很大的 P 圖場景&#xff0c;也有很多現成的網站和小程序&#xff0c;能幫你快速完成這件事…

如何打造一個高并發系統?

今天和大家聊聊作為一個后端開發&#xff0c;在實際工作中&#xff0c;我們如何打造一個高并發的系統&#xff1f; 如下圖所示&#xff0c;大概有六個層面&#xff0c;我們結合具體的場景直播間簽到去一一細說。 一、前端 1、打散請求&#xff1a;即把用戶的接口分散一點去請求…

996引擎 - 前期準備-配置開發環境

996引擎 - 前期準備 官網搭建服務端、客戶端單機搭建 開發環境配置后端開發環境配置環境 前端開發環境配置環境 后端簡介前端簡介GUILayoutGUIExport 官網 996傳奇引擎官網 所有資料從官網首頁開始&#xff0c;多探索。 文檔&#xff1a; 996M2-服務端Lua 996M2-客戶端Lua 搭…

迅為RK3568開發板篇OpenHarmony實操HDF驅動控制LED-添加內核編譯

編譯內核時將該 HDF 驅動編譯到鏡像中&#xff0c;接下來編寫驅動編譯腳本 Makefile&#xff0c;代碼如下所示&#xff1a; 加入編譯體系&#xff0c;填加模塊目錄到 drivers/hdf_core/adapter/khdf/linux/Makefile 文件 更多內容可以關注&#xff1a;迅為RK3568開發板篇OpenHa…

生信軟件管家——conda vs pip

pip vs conda&#xff1a; 安裝過python包的人自然兩種管理軟件都用過&#xff0c; Pip install和Conda install在Python環境中用于安裝第三方庫和軟件包&#xff0c;但它們在多個方面存在顯著的區別 總的來說&#xff1a; pip是包管理軟件&#xff0c;conda既是包管理軟件&…

電子電氣工程會議

征稿主題 集中但不限于“電子電氣與信息工程”等其他相關主題。 電子、電氣工程&#xff1a; 電路與電子學、智能芯片、半導體器件、數字信號處理、遙感&#xff0c;雷達和傳感、射頻技術、微電子技術與電子信息、電子工程中的計算智能、電力領域的數據科學技術、智能電力設…

OpenVela 架構剖析:從內核到應用

目錄 一、總體架構概述 二、 內核層 2.1. OpenVela架構的內核基礎 2.2. 內核層的主要職責 2.3. OpenVela對NuttX的擴展與優化 三、系統服務層 2.1. 進程管理 2.2. 內存管理 2.3. 文件系統 2.4. 網絡通信 四、框架層 4.1. 模塊化設計 4.2. API接口 4.3. 組件和服務…

ubuntu 布暑python項目

在Ubuntu上部署Python項目通常包括以下幾個步驟&#xff1a; 1 安裝必要的軟件&#xff1a; 確保系統已經安裝了Python、pip&#xff08;Python包管理工具&#xff09;以及virtualenv&#xff08;可選&#xff0c;用于創建獨立的Python環境&#xff09;。如果還沒有安裝&#…

RV1126畫面質量一:視頻基礎

在聊視頻畫面調節之前&#xff0c;先來認識一下視頻畫面的有一些基礎問題 如今我們所處的時代&#xff0c;是移動互聯網時代&#xff0c;也可以說是 視頻時代 。 從快播到抖音&#xff0c;從“ 三生三世 ” 到 “ 三十而已 ” &#xff0c;我們的生活&#xff0c;被越來越多的 …

準備知識——波紋度和粗糙度區別與聯系

在開始齒輪齒面波紋度開始前&#xff0c;先來學習一下基本概念——波紋度和粗糙度&#xff0c;廢話不多說&#xff0c;直接開始&#xff1a; 什么是表面粗糙度&#xff1f; 表面粗糙度定義為實際表面相對于波谷的較短頻率。如果去觀察加工零件&#xff0c;會注意到它們的表面…

五、華為 RSTP

RSTP&#xff08;Rapid Spanning Tree Protocol&#xff0c;快速生成樹協議&#xff09;是 STP 的優化版本&#xff0c;能實現網絡拓撲的快速收斂。 一、RSTP 原理 快速收斂機制&#xff1a;RSTP 通過引入邊緣端口、P/A&#xff08;Proposal/Agreement&#xff09;機制等&…

寶塔Linux+docker部署nginx出現403 Forbidden

本文主要講述了寶塔docker部署nginx出現403 Forbidden的原因&#xff0c;以及成功部署前端的方法步驟。 目錄 1、問題描述2、問題檢測2.1 檢測監聽端口是否異常2.2 檢測Docker容器是否異常2.2.1 打開寶塔Linux的軟件商店&#xff0c;找到Docker管理器&#xff0c;查看前端容器是…

光交箱啞資源巡檢過程中都要檢查哪些設備,怎樣實現智能化管理

一、光交箱啞資源管理現狀 光交箱啞資源主要包括光纖、光纜、接頭盒、配線架等設備。這些設備在通信網絡中起著至關重要的作用&#xff0c;但由于缺乏智能化的監控和診斷能力&#xff0c;管理難度較大。 效率低下&#xff1a;人工巡檢的頻率和覆蓋范圍有限&#xff0c;資源清…

代碼隨想錄——串

文章目錄 反轉字符串反轉字符串Ⅱ路徑加密反轉字符串中的單詞動態口令字符串匹配重復的子字符串 反轉字符串 344. 反轉字符串 //前后對應交換 //0<->sSize-1 //1<->sSize-2 //... //i<->sSize-1-i,i0,1,...,(sSize-1)/2 void reverseString(char* s, int s…

在K8S中使用Values文件定制不同環境下的應用配置詳解

在Kubernetes&#xff08;簡稱K8s&#xff09;環境中&#xff0c;應用程序的配置管理是一項關鍵任務。為了確保應用程序在不同環境&#xff08;如開發、測試、預發布和生產&#xff09;中都能穩定運行&#xff0c;我們需要為每個環境定制相應的配置。Values文件是在使用Helm管理…

機器學習(5):支持向量機

1 介紹 支持向量機&#xff08;Support Vector Machine&#xff0c;簡稱 SVM&#xff09;是一種監督學習算法&#xff0c;主要用于分類和回歸問題。SVM 的核心思想是找到一個最優的超平面&#xff0c;將不同類別的數據分開。這個超平面不僅要能夠正確分類數據&#xff0c;還要使…

【前端知識】簡單易懂的vue前端頁面元素權限控制

文章目錄 設計思路代碼實現1. **權限數據管理**2. **權限判斷方法**3. **動態控制元素**4. **路由權限控制**5. **無權限頁面** 總結相關文獻 在前端實現基于 Vue 的權限控制&#xff0c;通常需要結合后端返回的用戶權限數據&#xff0c;動態控制頁面元素的顯示與隱藏、按鈕的可…