實驗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的方格,為了保衛城堡,現需要在某些格仔裡修建一些堡壘。城堡中的某些格仔是牆,其餘格仔都是空格,堡壘只能建在空格裡,每個堡壘都可以向上下左右四個方向射擊,如果兩個堡壘在同一行或同一列,且中間沒有牆相隔,則兩個堡壘都...