POJ 1789 最小生成樹 Prim

2022-05-16 22:39:25 字數 1409 閱讀 5942

題目描述:給予n個長度為7的字串,定義兩字串間的代價為同一位置不同的字元的個數,現在要聯通所有的字串求最小代價。

思路:一開始使用krustal演算法,然而因為是稠密圖導致tle,換用prim。

krustal:(tle)

#include #include 

#include

#include

#define n 2005

using

namespace

std;

struct

e e(

int a,int b,int

c):fi(a),sec(b),val(c){}

bool

operator

<(const e&x)const

};class

graph

return

cnt;

}int find(int

x)

bool union(int a,int

b)

else

return

false

; }

public

:

intinit()

return

n; }

void

build()}}

intget_ans()

}return

ans;

}};graph ss;

intmain()

}

prim(ac):

#include #include 

#include

#include

#include

#define n 2005

using

namespace

std;

class

graph

return

cnt;

}public

:

intinit()

return

n; }

void

build()}}

intget_ans()

if(!mark)break

; inset[mark] = true

; ans+=dis[mark];

for(int j = 1 ; j <= n ; ++j)}}

return

ans;

}};graph ss;

intmain()}//

在稠密圖中比較實用,每次找出距離最小的點加入集合,然後更新剩下不在集合中的點的最小距離(只用以新加入的點做參考)

//

poj 1789 最小生成樹)

題意 給出n個卡車,每個卡車的型別是七個字元組成的,一種卡車可以從另一種卡車派生來的,代價是兩種卡車間型別不同字元的個數,求出這n中卡車派生的最小代價,n種車有一 種是開始就有的,n 1種是派生出來的。思路 因為剛開始有一種卡車,所以就是加n 1條把所有車連起來,就是最小生成樹了。include i...

poj1789 最小生成樹 prim

水題。題目大意 用乙個7位的字串代表乙個編號,兩個編號之間的distance代表這兩個編號之間不同字母的個數。乙個編號只能由另乙個編號 衍生 出來,代價是這兩個編號之間相應的distance,現在要找出乙個 衍生 方案,使得總代價最小,也就是distance之和最小。很容易想到,將每兩個頂點間的di...

POJ 1789最小生成樹(kruscal演算法)

這題其實是密的,比較適合用prim演算法,但是我現在想練習一下自己的並查集運用,所以只用了kruscal演算法 題意就是字串中,串與串比較,其中一串是拿來做參考,其他如果其中的字元改變最小,就是最佳的 就是 繼承 比如 4 aaaaaaa baaaaaa abaaaaa aabaaaa第一行作為參考...