乙個機械人可以前後左右移動,問移動n次有多少種路徑;
如移動一次可以前後左右移動有4種路徑;注意:每條路徑中不會有每個地方只能走一次;
乙個很簡單的深搜題,比較基礎; 假設機械人最多移動15次,int就可以啦,移動16次就要long long了
#include #include #include #include #define max 50000+5
using namespace std;
bool book[100*100][100*100]; //標記該地點是否被走過,100*100的地圖;
int cnt=0; //記錄路徑的數目;
int n; //機械人移動的次數;
int next[4][2]=,,,}; //前後左右移動;
void dsf(int x, int y, int step)
book[x][y]=1; //標記走過的路徑;
int k=4;
int tx, ty;
for(k=0; k<=3; k++)
}}int main()
return 0;
}
八皇后 簡單深搜
檢查乙個如下的6 x 6的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行 每列有且只有乙個,每條對角線 包括兩條主對角線的所有平行線 上至多有乙個棋子。上面的布局可以用序列2 4 6 1 3 5來描述,第i個數字表示在第i行的相應位置有乙個棋子,如下 行號 1 2 3 4 5 6 列號 2 4 6 1...
演算法之路 深搜 廣搜(簡單搜尋)
通過一定的順序,列舉每乙個資料 經常會通過一些判斷條件去掉無意義的資料,即剪枝 找到想要的資料的過程。迷宮 以迷宮為例 如圖,左上角是起點,右下角是終點。如果給我們做,我們可以一眼看出答案,但是電腦卻很難 看 出來,因為電腦一次只能看乙個格。所以就需要乙個乙個格仔去看是否能走,一直找到中間點。如果我...
廣搜和深搜
一般來說,廣搜常用於找單一的最短路線,或者是規模小的路徑搜尋,它的特點是 搜到就是最優解 而深搜用於找多個解或者是 步數 已知 好比3步就必需達到前提 的標題,它的空間效率高,然則找到的不必定是最優解,必需記實並完成全數搜尋,故一般情況下,深搜需要很是高效的剪枝 優化 像搜尋最短路徑這些的很顯著若是...