HDOJ1863 暢通工程

2022-02-28 03:27:59 字數 1144 閱讀 7458

新學習了prim演算法,把之前的dijkstra改了改,d陣列用來存上乙個距離當前節點最近的長度,而不是源點到當前最近的長度就可以了。初始化d為inf,如果條件不夠那和算出來必定》inf(沒考慮溢位,因為我定義的inf並不是很大)(題目小坑,把n和m輸入順序反了一下。)

1

#pragma warning(disable:4996)23

4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include

20 #include 21 #include 22

23using

namespace

std;

2425

const

int maxn = 105;26

const

int inf = 0xffffff;27

intd[maxn];

28int

g[maxn][maxn];

29int

vis[maxn];

30int

n, m;

3132

void

init()

39 g[i][i] = 0;40

}41}42

43int prim(int

start) 52}

53}54 vis[u] = 1;55

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

60}61int sp = 0;62

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

65return

sp;66}67

68int

main() 78}

79int len = prim(1

);80

if(len > inf) puts("?"

);81

else printf("

%d\n

", len);82}

83 }

hdoj1863 暢通工程

此題與hdoj1233解法一樣 include include using namespace std int city 101 struct road road road 5051 int cmp const road a,const road b int find const int n int...

HDOJ 1863 暢通工程 普利姆演算法

普利姆演算法是以乙個點為源點,找該源點到下乙個點的最短距離 include include define inf 99999 using namespace std int mp 110 110 int dis 110 bool vis 110 普利姆演算法 void prim int m vis ...

HDU 1863 暢通工程

include include include using namespace std const int maxn 5000 5 int n,m,ans,cnt bool flag struct streat edge maxn int root 105 int find int x void k...