搜尋 九度1461 DFS

2021-07-27 08:53:42 字數 946 閱讀 2860

題目tempter of the bone:

題意:有乙個n*m的迷宮,包括起點s,終點d,牆x和地面,0秒時主人公從s出發,每秒能走到與其相鄰的位置中的乙個,且每個位置被行走之後都不能再次走入,問是否存在這樣一條路徑使主人公在 t 秒時剛好走到d

注意點:每次dfs()後一定要恢復[點的可訪問性]

#include

using

namespace

std;

char row[10][10] = ; //初始地圖

intmap[10][10] = ; //記錄是否 有路

bool mark[10][10] = ; //記錄 是否 已訪問

int flag = 0;

int go[2] = ;

int a, b, t;

void dfs(int nx, int ny, int ex, int ey, int time)

return;

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

}int main()

//終點【注: 終點也要設定為 "路"】

if ('d' == row[i][j])

if ('.' == row[i][j]) map[i][j] = 1; //路

if ('x' == row[i][j]) map[i][j] = 0; //牆

mark[i][j] = false;}}

dfs(start_x, start_y, end_x, end_y, 0);

if (0 == flag)

printf("no\n");

else

printf("yes\n");

}return

0;}

搜尋 九度1457 BFS 好題

2017 2 24 題目 非常可樂 題意 三個杯子,容量滿足 a b c 且 b c 初始時 a中裝滿可樂,通過三個瓶子互相傾倒,平分可樂 思路 bfs 搜尋狀態 狀態定義 每個瓶子中所裝可樂的量 注意 不能先喝一部分,必須要得到平分狀態,即 瓶子和大杯子 各裝了一半可樂 感觸 在寫狀態轉移函式時,...

DFS和BFS 解棋盤遊戲(九度OJ 1091)

dfs利用遞迴,不必使用多餘的資料結構,實現簡單。但要注意剪枝。bfs借助佇列,往往在求最優解時使用。總是能找到最優解,某些情況下也要剪枝。這兩種方法根據具體問題來使用。以此題為例,dfs和bfs都可求解。由於是求最優解,用bfs更為直接。由於此題的不確定性,必須要考慮所有可能情況,結合剪枝。題目1...

九度OJ 1009 二叉搜尋樹

題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這...