實驗9 回溯法實驗一

2021-08-20 23:34:39 字數 2729 閱讀 7839

實驗9 回溯法實驗一

oj練習

1. 暢通工程續:

2. 最短路徑問題:

3. 最短路:

4*. choose the best route:

5*. 乙個人的旅行:

6*. hdu today:

7*. bus system:

8*. 0 or 1:

實驗內容

1. 程式設計實現dijkstra演算法。

輸入:第1行第1個值表示頂點個數,第2個值表示邊個數;第2行開始為邊及權重。例:

5 7 0

0 1 10

0 3 30

0 4 100

1 2 50

2 4 10

3 2 20

3 4 60

輸出:頂點0到每乙個頂點的最短路徑長度。例:

0 10 50 30 60

源**:

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 10010;

const ll inf = 2147483647;

typedef pairint> pli;

struct node

bool

operator

< (const node & a)const

};vector

e[maxn];

ll d[maxn];

priority_queuevector

,greater> q;

int main()

); }

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

d[st] = 0;

q.push();

while ( q.size() ));}

}}

for(int i=0;iif(i!= n-1)

cout

<" ";

else

cout

《用1, 2, 3…9 這九個數字組成乙個數學公式,滿足:abc + def = ghi,每個數字只能出現一次,編寫程式輸出所有的組合。

源**:

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 10010;

const ll inf = 2147483647;

typedef pairint> pli;

int a[10],book[10];

void dfs(int step)

printf("\n");

return ;}}

for(int i=1;i<10;i++)

}return ;

}int main()

使用回溯法求解n後問題。

輸入:皇后的個數。輸入示例:

4 輸出:每一種方案及總方案數。輸出示例:

0 1 0 0

0 0 0 2

3 0 0 0

0 0 1 0

2 0 0 0

0 0 0 3

總方案數為2。

源**:

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 105;

const ll inf = 2147483647;

typedef pairint> pli;

char a[maxn][maxn];

int m,n,b[maxn][maxn];

int x[maxn];

int place(int k)

return1;}

void print(int x,int n)

printf("\n");

}void nqueue(int n)

if(x[k]<=n)

else

}else

}printf("%d\n",total);

}int main()

4. 油田問題
輸入乙個m行n列的字元矩陣,統計字元「@」組成多少個八連塊。如果兩個字元「@」所在的格仔相鄰(橫、豎或者對角線方向),即屬於同乙個八連塊。例如,下圖有兩個八連塊。

源**:

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 105;

const ll inf = 2147483647;

typedef pairint> pli;

char a[maxn][maxn];

int m,n,b[maxn][maxn];

void dfs(int x,int y,int ans)

int main()

實驗五 回溯法

實驗 五 回溯法 一 實驗目的與要求 1 通過回溯法的示例程式理解回溯法的基本思想 2 運用回溯法解決實際問題進一步加深對回溯法的理解和運用 二 實驗內容 1 分析並掌握 符號三角 問題的回溯法求解方法 2 分析並掌握 n皇后 問題的回溯演算法求解方法 3 練習使用回溯法求解 整數變換 等問題。三 ...

演算法實驗4《回溯法》

1.編寫乙個簡單的程式,解決8皇后問題。include using namespace std bool backtrack int list 8 int t return false intmain 2.批處理作業排程問題 問題描述 給定n個作業的集合j j1,j2,jn 每乙個作業ji都有兩項任...

演算法實驗二 回溯法 堡壘問題

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述城堡是乙個4 4的方格,為了保衛城堡,現需要在某些格仔裡修建一些堡壘。城堡中的某些格仔是牆,其餘格仔都是空格,堡壘只能建在空格裡,每個堡壘都可以向上下左右四個方向射擊,如果兩個堡壘在同一行或同一列,且中間沒有牆相隔,則兩個堡壘都...