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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

22.网络提速(最短路)

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 22.网络提速(最短路) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

時間限制: 1 s

?空間限制: 128000 KB

?題目等級 : 黃金 Gold

題解

?查看運行結果

題目描述?Description

某學校的校園網由n(1<=n<=50)臺計算機組成,計算機之間由網線相連,如圖5。其中頂點代表計算機,邊代表網線。正如你所見,不同網線的傳輸能力不盡相同,例如計算機1與計算機2之間傳輸信息需要34秒,而計算機2與計算機3之間的傳輸信息只要10秒。計算機1與計算機5之間傳輸信息需要44秒,途徑為機1到機3到機5。

現學校購買了m(1<=m<=10)臺加速設備,每臺設備可作用于一條網線,使網線上傳輸信息用時減半。多臺設備可用于同一條網線,其效果疊加,即用兩臺設備,用時為原來的1/4,用三臺設備,用時為原來的1/8。如何合理使用這些設備,使計算機1到計算機n傳輸用時最少,這個問題急需解決。校方請你編程解決這個問題。例如圖5,若m=2,則將兩臺設備分別用于1-3,3-5的線路,傳輸用時可減少為22秒,這是最佳解。

輸入描述?Input Description

第一行先輸入n,m。以下n行,每行有n個實數。第i行第j列的數為計算機i與計算機j之間網線的傳輸用時,0表示它們之間沒有網線連接。注意輸入數據中,從計算機1到計算機n至少有一條網路。

?

輸出描述?Output Description

輸出計算機1與計算機n之間傳輸信息的最短時間。(保留兩位小數)

樣例輸入?Sample Input

5?2

0?34?24?0?0

34?0?10?12?0

24?10?0?16?20

0?12?16?0?30

0?0?20?30?0

樣例輸出?Sample Output

22.00

數據范圍及提示?Data Size & Hint

分類標簽?Tags?點此展開?

思路:先找出1—n的最短路,再從最短路上,從邊的權值的大到小順序除二知道m==0為止

?

代碼:

#include

using namespace std;

const int maxn=51;

#include

#include

#include

int n,m,p[maxn][maxn],dist[maxn],pre[maxn],visit[maxn]={0},t=0;

double sum=0;

struct Edge{

?????? int from,to;

?????? double weigh;//因為最后結果保存2位小數,所以權值也要是浮點數才行

};

Edge edge[maxn*maxn];//存最短路徑的邊

void input();

void dijkstra();

int cmp(const Edge &a,const Edge &b)

{

?????? return a.weigh>b.weigh;

}

void stim()

{

?????? while(pre[n]!=0)//把最短路徑放到結構體中

?????? {

????????????? edge[++t].from=pre[n];

????????????? edge[t].to=n;

????????????? edge[t].weigh=p[pre[n]][n];

????????????? n=pre[n];

????????????????????

?????? }

?????? sort(edge+1,edge+t+1,cmp);//巴結構體的邊權有大到小排序

?????? int edgel;

? while(m)

? {

???? edgel=1;//比較指針

?????? ?while(m)

?????? ?{

????????????? while(edge[edgel].weigh>edge[edgel+1].weigh)//把大數一次性除得比第二個數小

????????????? {

???????????????????? m--;

???????????????????? edge[edgel].weigh/=2;

???????????????????? if(m==0)return;

????????????????????

????????????? }

????????????? edgel++;//比較23

????????????? if(edgel==t) //比到最后一個時,再重新排序,由大到小,分別/2

???????????????????? break;

?????????????

?????????????

?????? ?}

?????? sort(edge+1,edge+t+1,cmp);

? }

?

}

int main()

{

?????? input();

?????? dijkstra();

?????? stim();

?????? for(int i=1;i<=t;++i)

?????? sum+=edge[i].weigh;

?????? printf("%.2lf",sum);

?????? return 0;

}

void dijkstra()

{

??? visit[1]=1;

?????? pre[1]=0;//1的前驅設為0

?????? dist[1]=0;//注意

?????? for(int i=2;i<=n;++i)

??? ?????? if(dist[i]<99999)

????????????? ?pre[i]=1;?????? //把前驅是1的先設上,因為下面算法,不會給他設

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

?????? {

????????????? int min=99999,k=0;

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

????????????? {

???????????????????? if(dist[j]

????????????? ??? {

????????????? ??? ?????? k=j;

????????????? ??? ?????? min=dist[j];

???????????????????? }

????????????? }

????????????? if(k==0) break;

????????????? visit[k]=1;

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

????????????? {

???????????????????? if(dist[j]>dist[k]+p[k][j])

???????????????????? {

??????????????????????????? dist[j]=dist[k]+p[k][j];

??????????????????????????? pre[j]=k;//記錄前驅

???????????????????? }

????????????? }

?????? }

??????

}

void input()

{

?????? scanf("%d%d",&n,&m);

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

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

?????? ? {

?????? ? ??? scanf("%d",&p[i][j]);

?????? ? ??? if(p[i][j]==0)

?????? ? ??? p[i][j]=99999;

?????? ? ??? if(i==1)

?????? ? ??? dist[j]=p[i][j];

?????? ? }

}

轉載于:https://www.cnblogs.com/csgc0131123/p/5290510.html

總結

以上是生活随笔為你收集整理的22.网络提速(最短路)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 真实乱偷全部视频 | 美梦视频大全在线观看高清 | 欧美性久久久 | 一级特黄色片 | 91在线免费网站 | 欧美三级在线看 | 自拍一区在线 | 人妻少妇精品一区二区 | 91久色视频 | 欧州一区| 亚洲图片综合网 | 久久精品无码一区二区三区 | av网站大全在线观看 | 日韩在线一 | 国产东北真实交换多p免视频 | 午夜视频福利在线观看 | 中国av一区 | 欧美日韩中日 | 精品一区二区三区视频在线观看 | 日本xxxxxxxxx69 | 超碰伊人网 | 日本www在线播放 | 波多野结衣简介 | 美女色呦呦 | 成人依依 | 爱乃なみ加勒比在线播放 | 伊人草| 亚洲免费在线观看视频 | 国产又粗又猛又爽又黄av | 女尊高h男高潮呻吟 | 成人免费黄色大片 | 欧美日韩不卡 | 国产女主播福利 | 精品国偷自产一区二区三区 | 亚洲一二三av | 高hhhhh| 色哟哟视频在线 | 国产一级做a爰片久久毛片男 | 精品久久国产字幕高潮 | 五月婷婷激情网 | www.狠狠艹 | 手机在线视频一区 | 人妖粗暴刺激videos呻吟 | 福利小视频在线 | 亚洲精品视频在线观看免费视频 | 青青草免费公开视频 | 国产日产欧美一区二区 | 正在播放一区 | 91麻豆蜜桃一区二区三区 | 免费极品av一视觉盛宴 | 国产视频不卡 | 久久久久香蕉视频 | 亚洲一区二区久久久 | 日本中文不卡 | 少妇人妻互换不带套 | 一级不卡毛片 | 天天综合天天添夜夜添狠狠添 | 欧美一级淫片免费视频魅影视频 | 永久免费在线观看视频 | av永久免费网站 | 蜜桃视频一区二区三区 | 色吧综合网| 在线免费国产视频 | 青青草视频免费 | 天堂av网手机版 | 热久久久久久久 | 日本wwww色 | 在线观看自拍 | 天堂а√在线中文在线新版 | 中文字幕一区久久 | 国产91精品露脸国语对白 | www麻豆视频 | 国产精品操 | 四虎1515hh.com | 国语对白做受欧美 | 特级淫片裸体免费看 | 午夜啪啪网站 | 夜夜爽夜夜叫夜夜高潮漏水 | 毛片免费全部无码播放 | 快播91| 天天操免费视频 | 中文有码在线观看 | 欧美精品入口蜜桃 | 五月激情六月丁香 | 在线的av| 无码av天堂一区二区三区 | 日本韩国欧美在线 | 日韩毛片一区 | 久久影院一区 | 欧美成人综合色 | 精品人妻无码专区在线 | 人妖被c到高潮欧美gay | 俺也去五月婷婷 | 亚日韩av| 国产成人免费在线视频 | www.日韩| 狠狠的干狠狠的操 | 亚洲午夜精品在线 | 亚洲の无码国产の无码步美 |