迷宮探索

/*
5 4
0 0 1 0
0 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
1 1 4 3
*/#include<iostream>using namespace std;struct node 
{int x;//橫坐標int y;//縱坐標int f;//父親在隊列中的編號int s;//步數
};int main()
{node que[2051];int a[51][51]={0};int book[51][51]={0};//定義一個用于表示走的方向的數組int next[4][2]={{0,1},//向右走{1,0},//向下走{0,-1},//向左走{-1,0}};//向上走int head,tail;int i,j,k,n,m,startx,starty,p,q,tx,ty,flag;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}cin>>startx>>starty>>p>>q;//隊列初始化head=1;tail=1;//往隊列插入迷宮入口坐標que[tail].x=startx;que[tail].y=starty;que[tail].f=0;que[tail].s=0;tail++;book[startx][starty]=1;flag=0;//用來標記是否到達目標地點,0表示臨時沒有到達.1表示到達//當隊列不為空的時候循環while(head<tail){//枚舉4個方向for(k=0;k<=3;k++){tx=que[head].x+next[k][0];ty=que[head].y+next[k][1];//推斷是否越界if(tx<1||tx>n||ty<1|ty>m)continue;//推斷障礙物是否在路上if(a[tx][ty]==0&&book[tx][ty]==0){book[tx][ty]=1;que[tail].x=tx;que[tail].y=ty;que[tail].f=head;que[tail].s=que[head].s+1;tail++;}if(tx==p&&ty==q){flag=1;break;}}if(flag==1)break;head++;}//打印隊列中末尾最后一個點(目標點)的步數//注意tail是指向隊列隊尾(即最后一位)的下一個位置,所以這須要-1cout<<que[tail-1].s<<endl;return 0;
}


?

轉載于:https://www.cnblogs.com/yangykaifa/p/7296179.html

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

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

相關文章

Kinect2.0獲取數據

最近事情真是多&#xff0c;今天抽空研究一下Kinec2.0的數據獲取&#xff01; 系統要求 https://developer.microsoft.com/en-us/windows/kinect/hardware-setup 系統環境 聯想Y430P&#xff0c;Windows10 首先安裝了Kinect for Windows SDK &#xff08;KinectSDK-v2.0_1409-S…

linux超級工具,linux運維超級工具--sysdig

sysdig 是一個超級系統工具,它可以用來捕獲系統狀態信息&#xff0c;在運維工作中sysdig能很方便的排查異常、定位故障&#xff0c;它還能保存數據進行分析&#xff0c;并且提供強大的命令接口。在了解sysdig強大之處之前,首先得安裝sysdig&#xff0c;我這里是環境是centos6.7…

《sql語句練習1》

Oracle系列《一》&#xff1a;簡單SQL與單行函數 使用scott/tiger用戶下的emp表和dept表完成下列練習&#xff0c;表的結構說明如下 emp員工表(empno員工號/ename員工姓名/job工作/mgr上級編號/hiredate受雇日期/sal薪金/comm傭金/deptno部門編號) dept部門表(deptno部門編號…

Asp.net mvc 知多少(一)

本系列主要翻譯自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan&#xff0c;想看英文原版的可訪問http://www.dotnettricks.com/free-ebooks自行下載。該書主要分為兩部分&#xff0c;ASP.NET MVC 5、ASP.NET WEB API2。本書最大的特點是以面試問答…

stm32h7能跑linux,STM32H7榨干了Cortex-M7的最后一滴血

原標題&#xff1a;STM32H7榨干了Cortex-M7的最后一滴血有個非常重磅的消息ST給自己的STM32家族又新增了一條新的產品線—— H7H 代表的是High Pefrmance之意 (此為筆者臆測)7 則表示這是基于ARM Cortex-M7架構修改而來熟悉的工程師可能會問&#xff0c;不是已經有基于M7架構的…

通過PowerShell進行網絡分析

好久沒有寫文章&#xff0c;因為確實工作也比較忙。今天周末&#xff0c;稍微有些時間&#xff0c;在解決一個問題時&#xff0c;用到了一點抓取和處理網絡數據的小技巧&#xff0c;摘錄分享如下。問題描述我有一個需求&#xff0c;就是要研究某個網頁加載過程中具體發起了多少…

jvm監控調優常用命令

jvm監控調優常用命令 轉載于:https://www.cnblogs.com/likun10579/p/6403324.html

【BZOJ】1013 球形空間產生器

【解析】代數變形高斯消元 [分析] 依據題目以下的提示。設x[i][j]表示第i個點在第j維的坐標。r[j]為圓心在第j維的坐標 能夠知道&#xff1a; dis根號(∑(x[i][j]-r[j])^2)。 因為平方的非負性。所以能夠推出 dis^2∑(x[i][j]-r[j])^2。 依據平方和公式&#xff0c;(x[i][j]-r[…

c語言不規則窗口,C語言不規則數組和指針

不規則數組是每一行的列數不一樣的二維數組&#xff0c;其原理如下圖所示&#xff0c;圖中的數組有3行&#xff0c;每行有不同的列數。在了解如何創建不規則數組之前&#xff0c;讓我們先看一下用復合字面量創建的二維數組。復合字面量是一種C構造&#xff0c;前面看起來像類型…

php spl_autoload_register() 函數

spl_autoload_register()的用法&#xff1a; 其中$this表示當前類&#xff0c;autoload()是我注冊的自動加載函數&#xff0c;當然這個只是一個函數名&#xff0c;只要不與php的關鍵字重復&#xff0c;符合一般函數名的命名規范即可。 使用自動加載之后&#xff0c;當我們在一個…

C語言中遞歸什么時候能夠省略return引發的思考:通過內聯匯編解讀C語言函數return的本質...

C語言中遞歸什么時候能夠省略return引發的思考&#xff1a;通過內聯匯編解讀C語言函數return的本質 事情的經過是這種&#xff0c;博主在用C寫一個簡單的業務時使用遞歸&#xff0c;因為粗心而忘了寫return。結果發現返回的結果依舊是正確的。經過半小時的反匯編調試。證明了我…

C# 為什么說CM+Fody+HC是WPF開發的最強組合?

01—名詞解析CM&#xff1a;Caliburn.Micro(簡稱CM)一經推出便備受推崇&#xff0c;作為一款MVVM開發模式的經典框架&#xff0c;越來越多的受到wpf開發者的青睞.我們看一下官方的描述&#xff1a;Caliburn是一個為Xaml平臺設計的小型但功能強大的框架。Micro實現了各種UI模式&…

c語言邏輯運算符兩側運算對象,邏輯運算符兩側運算對象的數據類型是什么?...

邏輯運算符兩側運算對象的數據類型&#xff1a;可以是任何合法的類型數據&#xff1b;因為邏輯運算符兩邊的運算對象&#xff0c;最終都被轉換成bool值(邏輯值)操作。0、null轉換為false&#xff0c;而所有非零、非false、非null值轉換為true&#xff1b;然后進行運算。邏輯運算…

python-list:列表-元組-字符串

列表 “列表”是一個值&#xff0c;它包含多個字構成的序列。術語“列表值”指的是列表本身&#xff08;它作為一個值&#xff0c;可以保存在變量中、傳遞給函數&#xff09;--&#xff1a;按下標取值、切片、for循環、用于len()以及in not in等 list [aa,bb,cc,dd]是一個簡單的…

創建相似對象,就交給『工廠模式』吧

源碼&#xff1a; 源代碼C# 系列導航&#xff1a; 目錄 定義&#xff08;Factory Pattern&#xff09;&#xff1a; 用來創建目標對象的類&#xff0c;將相似對象的創建工作統一到一個類來完成。 一、簡單工廠模式&#xff1a; 代碼&#xff1a; /// <summary>/// 產品枚…

《ASP.NET Core 6框架揭秘》實例演示[26]:跟蹤應用接收的每一次請求

很多人可能對ASP.NET Core框架自身記錄的診斷日志并不關心&#xff0c;其實這些日志對糾錯排錯和性能監控提供了很有用的信息。如果需要創建一個APM&#xff08;Application Performance Management&#xff09;系統來監控ASP.NET Core應用處理請求的性能及出現的異常&#xff…

C語言循環為1404的循環,考試,求大神幫忙,C語言,小弟感激不盡

若有定義語句&#xff1a;int a10; double b3.14;&#xff0c;則表達式Aab值的類型是___________。  (1)A).char B)int C) double D)float(2)若有定義語句&#xff1a;int x12,y8,z;&#xff0c;在其后執行語句z0.9x/y;&#xff0c;則z的值為___________。A)1.9 B)1 C)2 D)2.…

js題集19

1.實現斐波那契數列。達到題目中的效果。不知道斐波那契數列是啥的請自行百度。 function fibonacci(){ } var ffibonacci(); for(var i0;i<10;i){ console.log(f()); } //output:按順序輸出斐波那契數列的數字。 eg&#xff1a; 1 2 3 5 8 13 21 34 55 89轉載于:https://ww…

阿里云Maven鏡像配置

2019獨角獸企業重金招聘Python工程師標準>>> <mirror><id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> …

c語言中有12個球,數學老師做不出來的一道邏輯推理題

同志們 那個球不一定輕啊正確的是平分三份 取兩分稱if(平)。。。。。。在未稱過的4球中取兩個放左邊 和標準的球稱(稱過的球一定標準)。。。。。。if(平)。。。。。。。。。。。。在兩次都未稱過的球中取一個 和標準的稱。。。。。。。。。。。。if(平)。。。。。。。。。。。。…