HDU4463Outlets(最小生成樹)

2021-07-02 22:17:24 字數 945 閱讀 9183

hdu4463outlets(最小生成樹)

hdu4463outlets

題目大意: 

需要新建乙個mall,裡面有很多的商店,希望修最短的路,使得裡面的店聯通,可以通過別的店間接的聯通,但是有規定兩家店一定要直接的聯通。求在這樣的條件下的最短的路徑。

解題思路: 

最小生成樹,只是前提是先要使得要求的兩個結點先聯通。

**:

#include

#include

#include

#include

using

namespace

std;

const

int maxn = 55;

int n, p, q;

int x[maxn], y[maxn], p[maxn];

struct edgee[maxn * maxn];

double

dist

(const

int u, const

int v)

intcmp

(const edge& a, const edge& b)

void

init

()int

getparent

(int x)

intmain

() sort(e, e + cnt, cmp);

init();

double ans = dist(p, q);

int count = 1;

p[p] = q;

for (int i = 0; i < cnt; i++)

if (count == n - 1)

break;

}printf ("%.2lf\n", ans);

}return

0;}

hdu 4463 Outlets(最小生成樹)

題意 n個點修路,要求總長度最小,但是有兩個點p q必須相連 思路 完全圖,prim演算法的效率取決於節點數,適用於稠密圖。用prim求解。p q間距離設為0即可,最後輸出時加上p q間的距離 prim演算法 include include include include using namespa...

hdu 5017 模擬退火求最值

題意 給乙個橢圓 然後求原點到這個橢圓距離最小的點的距離是多少。解析 依舊用模擬退火。修改了乙個地方,初始溫度從100改到了1,就行了。之前的也修改了。選z的時候,選離遠點近的那個點就行了。pragma comment linker,stack 1677721600 include include ...

hdu 2795 找區間最值的位置

題目很好理解 我只寫了兩種一種是update和query合併的線段樹是參考的。還有是分開的最開始寫的 本來想寫樹狀陣列的但是一下子真沒想到區間最值的更新位置怎麼弄就先緩緩吧。希望有大牛可以指點 include include using namespace std define lson l m r...