hdu_1728_逃離迷宮(bfs)

題目連接:http://acm.hdu.edu.cn/showproblem.php?pid=1728

題意:走迷宮,找最小的拐角

題解:對BFS有了新的理解,DFS+剪枝應該也能過,用BFS就要以拐角作為增量來搜,即以當前點為坐標,4個方向都搜一次,下一次出隊,step就要加1

 1 #include<cstdio>
 2 #include<queue>
 3 #include<cstring>
 4 using namespace std;
 5 #define FFC(i,a,b) for(int i=a;i<=b;i++)
 6 int t,m,n,xs,xe,ys,ye,k,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
 7 struct dt{int x,y,t;};
 8 char g[101][101];bool v[101][101];
 9 bool check(int x,int y){
10     if(x>n||x<1||y>m||y<1||g[x][y]=='*')return 0;
11     return 1;
12 }
13 bool fuck(){
14     memset(v,0,sizeof(v));
15     dt st,o;st.x=xs,st.y=ys,st.t=-1;
16     v[xs][ys]=1;
17     queue<dt>Q;Q.push(st);
18     while(!Q.empty()){
19         o=Q.front();Q.pop();
20         if(o.x==xe&&o.y==ye&&o.t<=k)return 1;
21         o.t++;
22         for(int i=0;i<4;i++){
23             int xx=o.x+dir[i][0],yy=o.y+dir[i][1];
24             while(check(xx,yy)){
25                 if(!v[xx][yy]){st.x=xx,st.y=yy,st.t=o.t,v[xx][yy]=1;Q.push(st);}
26                 xx+=dir[i][0],yy+=dir[i][1];
27             }
28         }
29     }
30     return 0;
31 }
32 int main(){
33     int t;
34     scanf("%d",&t);
35     while(t--){
36         scanf("%d%d",&n,&m);
37         FFC(i,1,n){
38             getchar();
39             FFC(j,1,m)scanf("%c",&g[i][j]);
40         }
41         scanf("%d%d%d%d%d",&k,&ys,&xs,&ye,&xe);
42         if(fuck())puts("yes");
43         else puts("no");
44         
45     }
46     return 0;
47 }
View Code

?

轉載于:https://www.cnblogs.com/bin-gege/p/5696167.html

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

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

相關文章

把文件放在SD卡

2019獨角獸企業重金招聘Python工程師標準>>> 在程序中訪問SDCard&#xff0c;你需要申請訪問SDCard的權限。 在AndroidManifest.xml中加入訪問SDCard的權限如下: <!-- 在SDCard中創建與刪除文件權限--> <uses-permissionandroid:name"android.permiss…

python分層聚類集群合并_24、python分層聚類案例(scipy方法)

目錄1、分層聚類算法2、方法3、分析步驟4、案例1、分層聚類算法層次聚類算法又稱為樹聚類算法&#xff0c;它根據數據之間的距離&#xff0c;透過一種層次架構方式&#xff0c;反復將數據進行聚合&#xff0c;創建一個層次以分解給定的數據集。2、方法01 聚類方法linkagescipy.…

【經典回放】多種語言系列數據結構算法:數組

數組如同前面學過的順序表,一次性申請一片地址連續的存儲空間,我們還知道,計算機中數組是以一維的形式存儲的,因為計算機的內存的一維的。在知道了多維數據的計算機存儲方式后,我們還要知道構造一個多維數據的方法,并構造ADT,具體做法如下所示: 內容和步驟: 1、C語言中…

stl中Priority Queues(優先隊列)的基本用法

博客搬家啦 blog.ma6174.comstl中Priority Queues(優先隊列)的基本用法 C優先隊列類似隊列&#xff0c; 但是在這個數據結構中的元素按照一定的斷言排列有序。 C Priority Queues(優先隊列) empty 語法: bool empty(); empty()函數返回真(true)如果優先隊列為空&#xff0c;否則…

如何用 windbg 導出 C# 中的 string 內容?

咨詢區 driis我在用 windbg 調試一個生產上的 程序卡死 故障 &#xff0c;在線程棧上有一個 string 類型的參數相當大&#xff0c;我用 !dumpobj 命令不能正常顯示內容&#xff0c;參考如下&#xff1a;0:036> !do 00000001b30d8668 Name: System.String MethodTable: 00000…

《零基礎看得懂的C語言入門教程 》——(四)C語言的基本數據類型及變量

一、學習目標 了解C語言的基本數據類型了解變量的基本概念了解變量的使用方法了解了變量的命名方法了解格式占位符了解變量的輸出 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離…

android一句話搞定圖片加載

http://square.github.io/picasso/ Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); gradle中添加 compile com.squareup.picasso:picasso:2.5.2 轉載于:https://www.cnblogs.com/rwxwsblog/p/5467874.html

轉HTML+CSS總結/深入理解CSS盒子模型

原文地址&#xff1a;http://www.chinaz.com/design/2010/1229/151993.shtml 前言&#xff1a;前陣子在做一個項目時&#xff0c;在頁面布局方面遇到了一點小問題&#xff0c;于是上stackoverflow上求助。ifaou在幫助我解決我問題的同時&#xff0c;還推薦我閱讀一篇有關CSS盒子…

主成分分析步驟_多元分析(1)--主成分分析

主成分分析主成分分析&#xff08;PCA&#xff09;是數據降維的一種常見方法&#xff0c;其它常見的方法還有因子分析&#xff08;FA&#xff09;,獨立成分分析&#xff0c;在進行大數據處理時&#xff0c;因為數據有很多特征&#xff0c;維數過高&#xff0c;不容易進行處理且…

ArcGIS實驗教程——實驗十九:網絡分析(最短路徑實現)

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據) 一、實驗描述 網絡分析模塊用于實現基于網絡數據集的網絡分析功能,包括路徑分析、服務區分析、最近設施點分析、OD成本矩陣分析、多路徑配送分析、位置分配分析和高級網絡的管理與創建等。 網絡…

設計模式之策略模式和狀態模式

1 策略模式 我們創建表示各種策略的對象和一個行為隨著策略對象改變而改變的 context 對象。策略對象改變 context 對象的執行算法&#xff0c; 我們可以簡單理解為更加不同的策略對象&#xff0c;執行不同策略方法。 2 類圖 3 代碼實現 1&#xff09;接口&#xff1a;Strat…

期待已久的Java 9 今日發布

人們期待已久的Java SE 9.0將在2017年9月21日發布&#xff0c;它會帶來一些重要的變化。\\JDK 9的核心變化就是引入了一種新的Java編程組件&#xff0c;也就是模塊&#xff0c;按照Oracle的說法&#xff0c;它是一個可命名的、自描述的代碼和數據集合。模塊技術的核心目標是減少…

AspNetCore7.0源碼解讀之UseMiddleware

前言本文編寫時源碼參考github倉庫主分支。aspnetcore提供了Use方法供開發者自定義中間件&#xff0c;該方法接收一個委托對象&#xff0c;該委托接收一個RequestDelegate對象&#xff0c;并返回一個RequestDelegate對象&#xff0c;方法定義如下&#xff1a;IApplicationBuild…

邊工作邊刷題:70天一遍leetcode: day 11-3

Single Number I/II II的python解是網上抄的&#xff0c;其實可以AC&#xff0c;但是python不會像c/java那樣自動overflow&#xff0c;而是轉化成long。所以如果有負數的情況會得到一個巨大的正數解&#xff0c;比如 Input:[-2,-2,1,1,-3,1,-3,-3,-4,-2] Output:4294967292 Exp…

《零基礎看得懂的C語言入門教程 》——(五)C語言的變量、常量及運算

一、學習目標 了解C語言變量的其它創建方式了解C語言常量了解C語言的運算符 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離學習誤區 第二篇&#xff1a;&#xff08;二&#xff…

實戰使用Axure設計App,使用WebStorm開發(4) – 實現頁面UI

系列文章 實戰使用Axure設計App,使用WebStorm開發(1) – 用Axure描述需求 實戰使用Axure設計App,使用WebStorm開發(2) – 創建 Ionic 項目 實戰使用Axure設計App,使用WebStorm開發(3) – 構建頁面架構 實戰使用Axure設計App,使用WebStorm開發(4) – 實現頁面UI 實戰使用Axu…

ArcGIS實驗教程——實驗二十:ArcGIS數字高程模型DEM建立

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據) 一、實驗描述 本實驗講述DEM的創建方法和過程。DEM的采集方法有四種:地面測量、攝影測量、空間站、地形圖數字化。 二、實驗內容 1、插值法DEM建立 2、創建TIN 3、TIN轉柵格 4、生成等高線 …

思科asa5515端口映射_Cisco ASA端口映射

SQL基礎--同義詞同義詞的概念: 同義詞是Oracle對象的別名,使用同義詞訪問相同的對象 可以為表.視圖.存儲過程.函數或另一同義詞等對象創建同義詞 方便訪問其它用戶的對象,隱藏了對象的身份 縮短對象名字的長度 同義 ...訪問本地json文件因跨域導致的問題我使用jquery的getJSON的…

英文詞頻統計預備,組合數據類型練習

實例: 下載一首英文的歌詞或文章&#xff0c;將所有,.&#xff1f;&#xff01;等替換為空格&#xff0c;將所有大寫轉換為小寫&#xff0c;統計某幾個單詞出現的次數&#xff0c;分隔出一個一個的單詞。2.列表實例&#xff1a;由字符串創建一個作業評分列表&#xff0c;做增刪…

ArcGIS實驗教程——實驗二十一:DEM分析

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據) 一、實驗描述 表面分析主要通過生成新數據集,如等值線、坡度、坡向、山體陰影等派生數據,獲取更多的反應原始數據集中所暗含的空間特征、空間格局等信息。 二、實驗內容 1、地形因子計算 2、填…