程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> poj1125Stockbroker Grapevine - floyd最短路

poj1125Stockbroker Grapevine - floyd最短路

編輯:C++入門知識

首先,題目可能有多組測試數據,每個測試數據的第一行為經紀人數量N(當N=0時,輸入數據結束),然後接下來N行描述第i(1<=i<=N)個經紀人與其他經紀人的關系(教你如何畫圖)。
每行開頭數字M為該行對應的經紀人有多少個經紀人朋友(該節點的出度,可以為0),然後緊接著M對整數,每對整數表示成a,b,則表明該經紀人向第a個經紀人傳遞信息需要b單位時間(即第i號結點到第a號結點的孤長為b),整張圖為有向圖,即弧Vij 可能不等於弧Vji(數據很明顯,這裡是廢話)。當構圖完畢後,求當從該圖中某點出發,將“消息”傳播到整個經紀人網絡的最小時間,輸出這個經紀人號和最小時間。最小時間的判定方式為——從這個經紀人(結點)出發,整個經紀人網絡中最後一個人接到消息的時間。如果有一個或一個以上經紀人無論如何無法收到消息,輸出“disjoint”(有關圖的連通性,你們懂得,但據其他同學說,POJ測試數據中不會有,就是說,你不判定,一樣能過,題目數據夠水的)。
以第一樣例為例:
3
2 2 4 3 5
2 1 2 3 6
2 1 2 2 2
總共3個經紀人,一號經紀人可向2個人傳遞信息,向2號傳遞所需時間為4分鐘,向3號傳遞需5分鐘。二號經紀人可向2個人傳遞信息,向1號需2分鐘,向3號需6分鐘。三號經紀人可向2人傳遞信息,向1號需2分鐘,向2號需2分鐘。
(以上阿拉伯數字即為對應數據)將圖畫出,很容易得出,從3號出發,網絡中最後一個得到消息的,需2分鐘(可以同時向多人傳遞,有點不合情理)。
所以輸出為 3 2。
[cpp] 
#include<iostream> 
#include<stdio.h> 
using namespace std; 
 
#define INF 1000000000 
int mp[10][10];//數據太弱了。。。。。 
 
int main() 

    int N,n,i,j,k,min,max,y,c; 
    while(scanf("%d",&N),N) 
    { 
        for(i=1;i<=N;i++) 
            for(j=1;j<=N;j++) 
                mp[i][j]=INF; 
        for(i=1;i<=N;i++) 
        { 
            scanf("%d",&n); 
            for(j=1;j<=n;j++) 
            { 
                scanf("%d%d",&y,&c); 
                mp[i][y]=c; 
            } 
            mp[i][i]=0; 
        } 
         
        for(k=1;k<=N;k++) 
            for(i=1;i<=N;i++) 
                for(j=1;j<=N;j++) 
                    if(mp[i][j]>mp[i][k]+mp[k][j]) 
                        mp[i][j]=mp[i][k]+mp[k][j]; 
        int mark=1; 
        min=INF; 
        for(i=1;i<=N;i++) 
        { 
            max=0; 
            for(j=1;j<=N;j++) 
            if(max<mp[i][j]) 
                    max=mp[i][j]; 
            if(min>max) 
            { 
                min=max; 
                mark=i; 
            } 
        } 
        printf("%d %d\n",mark,min); 
        } 
    return 0; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved