日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

人活系列Streetlights (秩)

發布時間:2025/3/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人活系列Streetlights (秩) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

人活著系列之Streetlights

Time Limit: 1000MS Memory limit: 65536K

題目描寫敘述

人活著假設是為了家庭,親情----能夠說是在這個世界上最溫暖人心的,也是最讓人放不下的。也是我在思索這個問題最說服自己接受的答案。對。或許活著是一種責任。為了生殖下一代,為了孝敬父母,男人要養家糊口。女人要生兒育女。就這樣循環的過下去,但終于呢?還是勞累愁煩,轉眼成空呀! 為了響應政府節約能源的政策,某市要對路燈進行改革,已知該市有n個城鎮。有m條道路。改革后該市僅僅開一部分道路的路燈。并且要使隨意兩個城鎮之間有路燈開著。城鎮編號為0~n-1。每條道路開的路燈要花費一定的費用,求改革后最多能節省多少費用。

輸入

多組輸入。每組第一行輸入n, m(1≤n≤ 100000。n-1≤m ≤100000);接下來m行。每行3個數u, v, w。代表城鎮u到城鎮v開著路燈的花費為w。

輸出

輸出改革后最多能節省的費用。假設數據不能保證隨意兩個城鎮有路燈開著。輸出-1。

演示樣例輸入

3 3 0 1 1 1 2 5 0 2 2 4 3 0 1 1 1 2 3 0 2 4

演示樣例輸出

5 -1

提示


水題
#include<iostream> #include<cstdio> #include<cstring> #include <cstdlib> #include <math.h> #include <algorithm> #define INF 0x3f3f3f3f const int N = 100010; using namespace std;struct node {int u,v,w; } g[N]; int num = 0,sum = 0,zong = 0,n,m,father[N]; int cmp(const void *a,const void *b) {struct node *X,*Y;X = (struct node *)a;Y = (struct node *)b;return X->w - Y->w; } int findx(int r) {while(r != father[r]){r = father[r];}int i = r,j;while(father[i] != r){j = father[i];father[i] = r;i = j;}return r; }void Kruskal() {for(int i = 0; i < m; i++){int uu = findx(g[i].u);int vv = findx(g[i].v);if(uu!=vv){num ++;sum += g[i].w;father[uu] = vv;}if(num == n-1)break;} } void init() {zong = 0,num = 0,sum = 0;for(int i = 0; i <=n; i++)father[i] = i; } int main() {while(~scanf("%d%d",&n,&m)){init();for(int i = 0; i < m; i++){scanf("%d%d%d",&g[i].u,&g[i].v,&g[i].w);zong += g[i].w;}qsort(g,m,sizeof(g[0]),cmp);Kruskal();(num==n-1)?

printf("%d\n",zong-sum):puts("-1"); } }



版權聲明:本文博客原創文章。博客,未經同意,不得轉載。

總結

以上是生活随笔為你收集整理的人活系列Streetlights (秩)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。