POJ_1253勝利的大逃亡

??? 這道題使用BFS做的,剛開始有點不太理解為什么使用隊列,一旦遇到可以到達終點的節點就立即返回,找到最短時間,最后明白了,因為在隊列里的所有節點一定比隊頭節點

的時間長。下面是具體代碼:

?

#include<stdio.h>
#include<queue>
using namespace std;
typedef struct{   int x,y,z,steps;
}point;
point start,end;
int a,b,c,t,n;
int map[51][51][51];
int dir[6][3]={{1,0,0}, {-1,0,0}, {0,1,0}, {0,-1,0}, {0,0,1}, {0,0,-1}};
int bfs(point start){   queue<point>q;   int i;   point cur,next; if(start.x==a-1&&start.y==b-1&&start.z==c-1)//考慮起點和終點相同的情況  {      return 0; }  start.steps=0; map[start.x][start.y][start.z]=1; q.push(start);  while(!q.empty()) {     cur=q.front();//取隊首元素  q.pop();      for(i=0;i<6;i++) //廣度優先搜索   {        next.x=cur.x+dir[i][0];    next.y=cur.y+dir[i][1];    next.z=cur.z+dir[i][2];      if(next.x==a-1 && next.y==b-1 && next.z==c-1) //下一步就是目的地    {             return cur.steps+1; }if(next.x>=0&&next.x<a&&next.y>=0&&next.y<b&&next.z>=0&&next.z<c)    if(map[next.x][next.y][next.z]!=1) {               map[next.x][next.y][next.z]=1;     next.steps=cur.steps+1;           q.push(next);          }     }    }   return -1;
}
int main()
{    int i,j,k,step;  scanf("%d\n",&n); while(n--)   {       scanf("%d %d %d %d",&a,&b,&c,&t);       for(i=0;i<a;i++)          for(j=0;j<b;j++)             for(k=0;k<c;k++)              scanf("%d",&map[i][j][k]);      if(a+b+c-3>t) {printf("-1\n");continue; }       if(map[a-1][b-1][c-1]==1){printf("-1\n");continue;}start.x=0;   start.y=0;    start.z=0;step=bfs(start);     if(step>=0&&step<=t)       printf("%d\n",step);   else         printf("-1\n");   }   return 0;
}

?

轉載于:https://www.cnblogs.com/tianfeng/archive/2013/05/31/bfs.html

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

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

相關文章

博客搬家算法偽碼

已有平臺&#xff1a;CSDN博客、51CTO、博客園、WordPress不同平臺的博客&#xff0c;數據解析方式不一樣&#xff0c;數據抓取和存儲都是類似的。1.確定博客首頁地址a.平臺地址比如&#xff0c;CSDN的博客地址是 http://blog.csdn.net/b.賬號fansunionCSDN某個用戶的地址是&am…

用js做分頁,點擊下一頁時,直接跳到了最后一頁——Number()的妙用

Number()的妙用 Number()是javascript中將字符型轉換為數值型的函數&#xff1b;問題描述&#xff1a;做分頁&#xff0c;用js實現&#xff0c;獲取當前頁面的值&#xff0c;然后js自加1&#xff0c;可是點擊下一頁時&#xff0c;直接跳到最后一頁。選擇跳轉到某頁的時候&#…

讓Apache支持Wap網站

日前搭建一臺Wap網站&#xff0c;環境為RedHat EL5ApachePHPMysql&#xff0c;要求支持wml文件。現將涉及到的配置修改記錄如下&#xff1a;1、修改Apache的httpd.conf文件&#xff0c;增加如下內容。AddType application/x-httpd-php .wmlAddType text/vnd.wap.wml .wml;chars…

vue傳中文標點_vue項目引入第三方高德地圖實現標點定位

vue項目中&#xff0c;高德地圖使用。引入vue中。異步導入vue中。gaoDe(key) {window.onApiLoaded function () {var map new AMap.Map(container, {resizeEnable: true,center: [113.951955, 22.530825],zoom: 16});}var url https://webapi.amap.com/maps? v1.4.15&k…

CVE-2014-4877 wget: FTP Symlink Arbitrary Filesystem Access

目錄 1. 漏洞基本描述 2. 漏洞帶來的影響 3. 漏洞攻擊場景重現 4. 漏洞的利用場景 5. 漏洞原理分析 6. 漏洞修復方案 7. 攻防思考 1. 漏洞基本描述 0x1: Wget簡介 wget是一個從網絡上自動下載文件的自由工具&#xff0c;支持通過HTTP、HTTPS、FTP三個最常見的TCP/IP協議下載&am…

java判斷某個字符串是否是數字

&#xff08;一&#xff09;利用正則表達式判斷某個字符串是否是數字 public static boolean isNumeric(String s) {// 正則表達式return (s.matches("\\d*") && Pattern.compile("[0-9]*").matcher(s).matches());} &#xff08;二&#xff09;利…

mysql-nt.exe w3wp.exe cpu 100%_w3wp.exe(IIS ) CPU 占用 100% 的常見原因及解決辦法

對于IIS管理員來說&#xff0c;經常會碰到Web服務器CPU占用100%的情況&#xff0c;以下是個人的日常工作總結和一些解決辦法&#xff0c;主要用來剖析w3wp.exe(IIS )占用CPU 100%的一些原因 和解決方案&#xff0c;希望能對你有所幫助w3wp.exe的解釋:全名&#xff0c;IIS Appli…

TOP結果詳解

2019獨角獸企業重金招聘Python工程師標準>>> TOP前5行 top - 16:24:25 up 284 days, 4:59, 1 user, load average: 0.10, 0.05, 0.01 top 當前時間、系統啟動時間、當前系統登錄用戶數目、平均負載&#xff08;1分鐘,10分鐘,15分鐘&#xff09;。平均負載&#x…

BZOJ3236 [Ahoi2013]作業

昨天晚上做的。。。差錯一直查到今天 最后沒辦法問管理員要了數據才知道原來ans數組開小了233&#xff0c;簡直沙茶 這道題不就是裸的莫隊嘛 ||| 只要用樹狀數組維護當前的兩種個數即可。 1 /**************************************************************2 Problem: 3…

mysql ddl dml 導出_MySQL:DDL和DML語句,弄明白了嗎?

語句分類DDL&#xff08;Data Definition Languages&#xff09;語句&#xff1a;即數據庫定義語句&#xff0c;用來創建數據庫中的表、索引、視圖、存儲過程、觸發器等&#xff0c;常用的語句關鍵字有&#xff1a;CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。增刪改表的結構D…

敏捷水手——單體法到微服務之旅

\本文要點\\探究持續四年多的漸進式改革是什么樣子&#xff1b;\\t探索為什么在變革軟件和組織設計時要遵循康威定律&#xff1b;\\t看看如何將領導力應用到不同的團隊、領域和層級&#xff1b;\\t舉例說明變革管理如何依賴于理念和一貫的長遠目標&#xff1b;\\t了解從職能型團…

SQLCMD的介紹

SQLCMD的介紹 原文:SQLCMD的介紹文章轉載自&#xff1a;http://blog.sina.com.cn/s/blog_3eec0ced0100mhm2.html最近經常用到超過80M *.sql文件的導入問題。上網找了一下&#xff0c;發現超過80M的文件是不能在查詢分析器中執行的。找了些解決方案&#xff0c;個人感覺最簡單的…

Windows下用命令行導出導入MySQL數據庫

方法1&#xff1a;添加“系統環境變量”。我的電腦&#xff1e;屬性&#xff1e;高級&#xff1e;環境變量&#xff0c;在“系統變量”欄目下找到 path 雙擊編輯。先添加&#xff1b;&#xff08;分號&#xff09;&#xff0c;再添加MySQL安裝目錄下bin文件夾&#xff08;包含m…

python模擬鼠標拖動滑塊_如何通過拖動滑塊來控制Kivy滾動視圖?

是的&#xff0c;你可以這樣做&#xff1a;在ScrollView中有一個scroll_類型屬性&#xff0c;因此通過設置它&#xff0c;您可以實現您想要的功能。在如果設置scroll_type[bars]&#xff0c;則可能需要更改bar_width屬性&#xff0c;因為它的默認值為2&#xff0c;而且它太小&a…

怎樣下載C/C++的免費、開源且跨平臺IDE——Code::Blocks

進入Code::Blocks的官網&#xff0c;官網地址為&#xff1a;http://www.codeblocks.org/home。進入后如下圖所示&#xff1a; 點擊“Home”菜單&#xff0c;跳轉到IDE的下載界面&#xff1a; 有幾種模式可供選擇&#xff0c;我選擇的第一種&#xff0c;Download the binary rel…

網站吞吐量

http://www.blogjava.net/neverend/archive/2011/01/25/343514.html轉載于:https://www.cnblogs.com/sevensole7/archive/2013/06/05/3118966.html

外鏈引入css有哪些方式_HTML+CSS基礎(三) CSS的引入方式和CSS選擇器

一、CSS概念&#xff1a;什么是CSS,CSS說白了就是給頁面添加樣式,讓整個頁面變的好看起來的一種東西,用來定義網頁外觀&#xff0c;如字體、背景、顏色等二、在頁面中使用css的3種常用方式1.行內樣式就是在一個標簽內使用 style 屬性,僅為某一個標簽添加樣式例如文字2.內嵌式就…

混合部署

http://horse87.blog.51cto.com/2633686/1628179轉載于:https://blog.51cto.com/12341672/1893792

Logistic回歸 python實現

Logistic回歸 算法優缺點&#xff1a; 1.計算代價不高&#xff0c;易于理解和實現2.容易欠擬合&#xff0c;分類精度可能不高3.適用數據類型&#xff1a;數值型和標稱型 算法思想&#xff1a; 其實就我的理解來說&#xff0c;logistic回歸實際上就是加了個sigmoid函數的線性回歸…

dataset轉換json格式

轉換json方法 public static string DataToJson(DataSet dt){StringBuilder jsonBuilder new StringBuilder();jsonBuilder.Append("{\"");jsonBuilder.Append("points");jsonBuilder.Append("\":[");for (int i 0; i < dt.Table…