題目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個序列,每個序列格式跟第乙個序列一樣,請判斷這...