ssl1562-局域网
生活随笔
收集整理的這篇文章主要介紹了
ssl1562-局域网
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
局域網(wǎng)
題目
就是一個圖,求最小生成樹,然后求被去除的邊的價值。
輸入
用線來表示聯(lián)通
5 5
1 2 8
1 3 1
1 5 3
2 4 5
3 4 2
輸出
去除的邊的總價值
8
解題思路
求出最小生成樹的價值然后線的總值減去最小生成樹的價值
代碼
#include<cstdio> using namespace std; int n,k,cost[101][101],lowcost[101],x,y,w,s,last,maxs; bool ok[101]; int main() {scanf("%d%d",&n,&k);for (int i=1;i<=n;i++)for (int j=1;j<=n;j++) cost[i][j]=23333333;//初始化for (int i=1;i<=k;i++){scanf("%d%d%d",&x,&y,&w);cost[x][y]=w;cost[y][x]=w;//聯(lián)通maxs+=w;//求總值}for (int i=1;i<=n;i++) lowcost[i]=cost[1][i];//每個點到集合的最小值ok[1]=true;//封路for (int i=2;i<=n;i++){int k=0,mins=23333333;for (int j=1;j<=n;j++)if (!ok[j] && lowcost[j]<mins){mins=lowcost[j];k=j;}//找最近的店ok[k]=true;//標記s+=lowcost[k];//求和for (int j=1;j<=n;j++)if (lowcost[j]>cost[k][j]) lowcost[j]=cost[k][j]; //修正每個點到集合的最小值}printf("%d",maxs-s);//輸出 }總結(jié)
以上是生活随笔為你收集整理的ssl1562-局域网的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通1349-最优布线问题
- 下一篇: ssl2345-繁忙的都市