DFS搜尋基本模型(具體模擬過程見《啊哈演算法》)

2022-07-27 10:48:09 字數 549 閱讀 2931

問題:輸入乙個數字n,輸出1-n的全排列。

思路:如果n比較小的話(像1,2,3這種)直接用for迴圈就好了,但是迴圈層越多,時間複雜度也越大,所以這個時候輸入的n大了肯定超時。

用新的方法(dfs),比如要輸出3的全排列

你現在手裡有3張撲克牌,分別編號1、2、3,要將這三張撲克牌分別放到三個箱子裡,箱子編號分別為1、2、3

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int n;

int a[1005],book[1005];

void dfs(int step)  //step表示你現在走到第step個箱子前面來放撲克了

printf("\n");

return ;

}for(i=1;i<=n;i++)

}return ;

}int main()

BFS迷宮問題模型(具體模擬過程見《啊哈演算法》)

題目描述與dfs模型走迷宮那篇一樣。小哈被困在迷宮裡,小哼解救小哈。這裡用bfs來寫。bfs 廣搜 與dfs 深搜 的區別就在於,dfs是 不撞南牆不回頭 一條路走到不能再走之後才會回到起始點,另開闢一條新的道路 而bfs是將道路層層擴充套件,走到乙個點時會同時搜尋附近能到達的點,同時進行。這裡先附...

模擬費用流的基本模型

在本蒟蒻學習的過程中參考了這位和這位dalao的部落格 費用流,是oi中解決最優化最優化問題的乙個常用演算法。但眾所周知費用流的模型雖然很容易構建,但他的時間效率卻比較低下 模擬費用流方法是指利用除費用流以外的手段解決一些費用流問題。一般來說,乙個問題如果使用模擬費用流演算法來解決,你在整個 中不會...

DFS 迷宮問題(輸出搜尋過程及路徑長度)

dfs main.cpp dfs 迷宮問題自己寫 可輸出搜尋過程 created by showlo on 2018 4 14.include include using namespace std define max n 102 define max m 102 int n,m int sx,s...