Highways poj1751最小生成樹

2022-05-11 11:05:06 字數 851 閱讀 8407

題意:有n個點,已知各點座標,距離為權值,求最小生成樹的邊

但是這個最小生成樹的m條邊是已經確定的了,所以可以讓已知邊的權值為0;

在prim演算法中改一下就行

#include#include

#include

#include

#include

#include

#define n 1100

#define inf 0xfffffff

using

namespace

std;

int vis[n], n, pre[n];//

pre[i]記錄的是i的父節點;

double

maps[n][n],dist[n];

void prim(int

start)

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

}if(index == -1) break

;

if(min != 0

) printf(

"%d %d\n

", pre[index],index);

vis[index] = 1

;

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

}}struct

node

a[n];

void

init()

}int

main()

}scanf("%d

", &m);

for(i=0; i)

prim(1);

}return0;

}

Highways POJ 1751 最小生成樹

這道題的邏輯比較簡單,明白了思路之後,結合並查集模板,我花了兩個小時不到的時間寫程式,卻又花了兩個小時去調bug!真是個悲傷的故事啊。演算法是這樣的 計算每兩個頂點 我設定了包括自環,其實包不包括沒太大區別 之間的連線長度,以及記錄端點,設為邊,設計edge這一結構體存。一共有n n 1 2條邊。然...

1751 分解因數

總時間限制 1000ms 記憶體限制 65536kb 描述 給出乙個正整數a,要求分解成若干個正整數的乘積,即a a1 a2 a3 an,並且1 a1 a2 a3 an,問這樣的分解的種數有多少。注意到a a也是一種分解。輸入第1行是測試資料的組數n,後面跟著n行輸入。每組測試資料佔1行,包括乙個正...

1751 區間覆蓋問題

time limit 1000 ms memory limit 65536 kib problem description 設x1 x2 xn 是實直線上的n 個點。用固定長度的閉區間覆蓋這n 個點,至少需要多少個這樣的固定長度閉區間?對於給定的實直線上的n個點和閉區間的長度k,設計解此問題的有效演...