poj1679 最小生成樹

2021-06-08 13:49:12 字數 480 閱讀 3127

題目大意:

判斷是否存在最小生成樹。

如果存在,判斷其是否唯一。

用prim演算法求最小生成樹。

將其中的每一條邊依次替換,權值是否和最小生成樹相同。

如果相同,則最小生成樹不唯一。

如果都不相同,則唯一。

這個prim的模板比較好,可以再求最小生成樹的同時直接進行判斷唯一性。

**如下:

#include#include#include#include#include#includeusing namespace std;

#define max 250

#define inf 1000000

int dis[max][max];

int t, n, m;

int result;

struct node

e[max];

void init()

{ for(int i=0; i

poj1679 最小生成樹

給定乙個圖,詢問是否存在不同的最小生成樹 思路 先用kru或者prim跑一條最小生成樹,把最小生成樹裡面的邊存起來,然後每次刪除一條邊跑最小生成樹演算法,看跑出來的生成樹和之前的是否一樣,如果一樣就有不同的最小生成樹,否則就沒有 注意 邊權為0的邊視為圖任然聯通,但是刪除這條邊時就不用和原來的比較 ...

唯一最小生成樹 POJ 1679

判斷mst時候唯一,用prime演算法,複雜度o n 2 define n 105 int n,m int dis n g n n bool vis n int mx n n 記錄路徑i j最大的邊值 int pre n 記錄最小生成樹路徑 bool intree n n 判斷哪些邊屬於mst in...

POJ 1679 次小生成樹

判斷最小生成樹是否唯一,方法是這樣的 1.對圖中每個點,掃瞄其他的邊,如果存在其他權值相同的邊,則對改邊作標記 2.然後用 kruskal或者prim 求mst 3.求的mst後,如果該mst不包含作了標記的邊,即可判定mst唯一 如果包含作了標記的邊,則依次去掉這些邊在求mst,如果求的mst權值...