hdu 1879 繼續暢通工程

2021-08-01 16:57:40 字數 550 閱讀 9234

簡單思路:

補了一道好久之前的題,最小生成樹,只不過這道題裡面可能有已經連好的一部分邊,將這些邊的權值設為0即可,因為本來就已經連好,不需要任何花費。然後就是kruskal求mst就好了。

#include #include #include #include #define loop(i,n) for(int i=1;i<=(n);++i)

using namespace std;

const int maxn=5000+5;

int pre[105];

struct kru

temp[maxn];

int findr(int x)

bool cmp(kru a,kru b)

int main()

sort(temp+1,temp+1+edge,cmp);

loop(i,edge)

if(cnt==n-1)

break;

}printf("%d\n",ans);

}return 0;

}

繼續暢通工程 hdu 1879

include 2243673 2010 03 24 20 56 41 accepted 1879 375ms 320k 1070 b c 悔惜晟 include 修改了三次終於ac,為何就是 的效率不高 include include using namespace std int s 4991 ...

hdu 1879 繼續暢通工程

include include include typedef structedge edge input 5050 int cost 5050 int parent 5050 int cmp const void a,const void b int root int n int kruskal ...

HDU 1879 繼續暢通工程

和前幾個最小生成樹有點不一樣的地方就是 在kruskal裡面,要先把已經修通的路排在前面 不知道這樣是不是多此一舉呢 再按照每條路的價值從小到大排序 自定義排序規則就是 呼叫c 的sort int cmp const e a,const e b 將每條邊存在結構體edge裡面 struct e ed...