POJ 2248 迭代加深搜尋

2021-07-02 02:45:38 字數 663 閱讀 7644

a[0]=1;  a[1]=2;

之後每個數可以由前面的任意兩個數相加得到(可以是同乙個數),問得到數字n的最短序列

n最大為100,迭代加深搜尋打表

#include "stdio.h"

#include "string.h"

int w;

int pri[110][15]; // 記錄答案

int len[110]; // 數字n所需長度

int seq[110]; // dfs的每乙個陣列的數字

void dfs(int k)

dfs(k+1);

}}int main()

{ int i,n;

memset(pri,0,sizeof(pri));

memset(len,-1,sizeof(len));

seq[1]=1;

seq[2]=2;

len[1]=1;

len[2]=2;

pri[1][1]=1;

pri[2][1]=1;

pri[2][2]=2;

for (w=3;w<=10;w++)

dfs(3);

while (scanf("%d",&n)!=eof)

{if (n==0) break;

for (i=1;i

迭代加深搜尋 POJ3921

自認為簡單的搜尋還是可以的,但是經過了這道題過後,我徹底否定自己了!這道題讓我看到了搜尋的境界 dfs 迭代 bfs。以前我一直以為圖論的題只能用圖論的演算法來做,而我做不出來,肯定是圖論的有些演算法沒學習好!這道題讓我看到了 圖論演算法的本質是搜尋。以前似乎在 聽到這樣的說法,但是沒注意,就算注意...

迭代加深搜尋

深度優先搜尋每次選定乙個分支,然後往下搜尋,直到遞迴邊界 才回溯。這種策略有一點缺陷,那就是當搜尋樹的分支數目特別 多,並且答案在某個較淺的節點上,如果dfs在一開始就選錯了分 支,那就會在沒有答案的深層次浪費時間 當搜尋樹規模隨著層次的深入增長很快,並且能 夠確保答案在乙個較淺的節點上時,就可以使...

迭代加深搜搜尋

對於可以用回溯法求解但解答樹的深度沒有明顯上限的題目,可以考慮使用迭代加深搜尋。經典問題 埃及分數問題 給出乙個分數,比如19 45,把它寫成若干個形如1 ri的分數的和的形式,比如19 45 1 5 1 6 1 18,要求分母不能重複使用並且使用的分數的個數最少。如果有多組個數相同的解,最後的分數...