二維平面上的回溯演算法(dfs)

2021-09-19 17:09:09 字數 820 閱讀 3400

回溯演算法在二維平面上的搜尋也能得到應用,也就是我們常說的dfs;

題目

給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。

單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中「相鄰」單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。

示例:輸入:

3 4abce

sfcs

adee

給定 word = 「abcced」, 返回 true.

給定 word = 「see」, 返回 true.

給定 word = 「abcb」, 返回 false.

#include #include using namespace std;

string a[100],word;

int n,m;

int d[4][2]=,,,},visited[100][100]=;

//從a[startx][starty]開始搜尋word[index...word.size()-1];

bool searchword( int index,int startx,int starty )

if( a[startx][starty] == word[index] )

}} return false;

}int main()

cin >> word;

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

}} cout << "false" << endl;

return 0;

}

求二維平面上共線最多的點數

思想為 統計每個點的各個斜率的直線上有多少個點 c include include include include include 隨機數通用公式 a rand n 其中的a是起始值,n是整數的範圍 要取得 a,b 的隨機整數,使用 rand b a a 要取得 a,b 的隨機整數,使用 rand ...

平面二維DP

馬攔過河卒 原題傳送門 這一到題目也是比較基礎的動態規劃,也可以理解為是遞推,主要是運用加法原理,思維難度不大。我們要求從 0,0 到 n,n 的方案總數,如果沒有馬的話,我們可以這麼做 設 f i j 為從 0,0 走到 i,j 的方案總數,我們知道一定是有上面和左邊走來,所以只需要累加上面和左邊...

演算法 基於分割槽最近點演算法的二維平面

摘要 網上有關於尋找最近點的分而治之的方法很多討論,但是,未完成的可執行 本文所介紹的問題乙個完整的可執行 參考對於那些有興趣。正文 作為對照。我們也同一時候實現了近期點對的列舉解法,詳細的主函式例如以下 include include include node.h void initlist no...