Pta 7 50 最近距離 25分 DFS

2021-10-02 12:49:16 字數 1192 閱讀 1257

在乙個遊戲中,玩家處於乙個如下所示12行12列的迷宮:

0,1,0,0,0,1,1,1,0,1,0,1

0,0,0,1,0,0,0,0,1,0,0,1

0,1,0,1,0,1,1,1,0,1,0,0

0,1,0,0,0,0,0,1,0,0,1,1

0,0,0,0,1,0,0,0,0,0,0,0

0,0,1,0,0,0,1,0,0,0,1,0

0,0,1,0,0,0,0,0,1,0,0,0

1,0,0,1,0,1,0,0,0,1,0,1

0,0,1,0,1,0,1,0,1,0,0,0

0,0,0,0,0,1,0,0,0,1,1,0

0,0,0,0,0,1,0,0,0,0,0,0

0,1,0,1,0,0,0,1,0,1,0,0

其中迷宮由0,1組成,0表示道路,1表示障礙物。

現在要根據玩家和遊戲中被攻擊的虛擬boss所在位置,給玩家以最近距離的提示。

最近距離:即玩家走到boss所走的最少步數。(注:路線中的一步是指從乙個座標點走到其上下左右相鄰座標點。)

輸入4個整數a,b,c,d(即玩家和虛擬boss在迷宮中的座標位置分別為(a,b) 、(c,d)), 其中 0<=a,b,c,d<12。

輸出在迷宮中從(a,b)出發到達(c,d)的最少步數,如果(a,b)永遠無法到達(c,d)則輸出10000。

0 0 11 11
22
#includeusing namespace std;

int a,b,c,d,flag=0,min;

int map[12][12]=;

int vis[20][20];

int dir[4][2]=;

int stepa[100][2];//記錄當前路徑

int stepb[100][2];//記錄最短路徑

void dfs(int x,int y,int step)

if(x==c&&y==d)

for(int i=0;i<4;i++)

if(!vis[xx][yy]&&map[xx][yy]==0)

} return;

}int main()

else

return 0;

}

單詞最近距離

有一篇文章內含多個單詞,現給定兩個單詞,請設計乙個高效演算法,找出文中這兩個單詞的最短距離 即最少相隔的單詞數,也就是兩個單詞在文章中位置的差的絕對值 給定乙個string陣列article,代表所給文章,同時給定文章的單詞數n和待查詢的兩個單詞x和y。請返回兩個單詞的最短距離。保證兩個單詞均在文中...

t010 最近距離

time limit 1 second memory limit 32 mb 聚類方法要求將空間中的點集,按照一點的方式進行歸類,要求每一類中的點集相互之間的距離足夠的 近 聚類的一般方法是選取某乙個點p,並用乙個距離r作為度量,只要空間中的點q距離點p的距離不超過r時,我們說點q和點p是屬於同一類...

凸包最近距離 旋轉卡殼

original link 題意 給出兩個順時針排序好的凸包,求這兩個凸包的最近點對距離。解析 旋轉卡殼的另外乙個應用。先找出p1p1 p1中的最低點,p2p2 p2中的最高點,然後旋轉 順時針逆時針隨意,要保證兩個切線旋轉方向相同 每次p1 p1p1 的切線旋轉到與一條邊重合,找出p2p2 p2中...