隨筆 - 147  文章 - 71  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          隨筆分類(146)

          隨筆檔案(147)

          文章分類(28)

          文章檔案(28)

          喜歡的Blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          http://acm.pku.edu.cn/JudgeOnline/problem?id=1125
          【題意簡述】有向圖(互相之間可能不等)中各頂點之間的最短路徑問題。一個人收到消息后便開始向所有他能發送的人(因人以固定的不等時間(長度1~10))發送消息,當所有人都收到消息后的時間長短為評價標準。
          【分析】Floyd算法。POJ這題的測試數據不嚴密,沒有寫disjoint也可以AC。
          import java.util.*;
          import java.io.*;

          public class poj_1125{
              
              
          public static void main(String rgs[]) throws Exception
              
          {
                  Scanner cin 
          = new Scanner(new BufferedInputStream(System.in));
                  
          int i,j,k,t=0,e,s,n = cin.nextInt();
                  
          while(n!=0){
                      
          int[][] a=new int[n+1][n+1];
                      
          for(i=1;i<=n;i++)
                          Arrays.fill(a[i],
          0xfffff);
                      
          for(i=1;i<=n;i++){
                          t 
          = cin.nextInt();
                          
          for(j=1;j<=t;j++){
                              e 
          = cin.nextInt();
                              s 
          = cin.nextInt();
                              a[i][e]
          =s;
                          }

                      }
                      
                      
          for(k=1;k<=n;k++){
                          
          for(i=1;i<=n;i++){
                              
          for(j=1;j<=n;j++){
                                  
          if(a[i][k]+a[k][j]<a[i][j])
                                      a[i][j]
          =a[i][k]+a[k][j];
                              }

                          }

                      }
              
                      
          int min=0xfffff,max;
                      k
          =0;        
                      
          for(i=1;i<=n;i++){
                          max
          =0;
                          
          for(j=1;j<=n;j++){
                              
          if(i!=&& a[i][j]>max)
                                  max
          =a[i][j];
                          }

                          
          if(max<min){
                              min
          =max;
                              k
          =i;
                          }

                      }

                      
          if(k>0)
                          System.out.println(k
          +" "+min);
                      
          else
                          System.out.println(
          "disjoint");
                      n 
          = cin.nextInt();
                  }

              }

          }
          posted on 2009-09-18 10:16 飛翔天使 閱讀(1079) 評論(0)  編輯  收藏 所屬分類: poj
          主站蜘蛛池模板: 东乌珠穆沁旗| 宁陵县| 班玛县| 新建县| 英山县| 阿拉善盟| 三台县| 鹿泉市| 黄山市| 永新县| 衡山县| 丹江口市| 麻江县| 屯昌县| 石棉县| 白水县| 富源县| 上饶县| 河西区| 同仁县| 横峰县| 酉阳| 内乡县| 宁河县| 玉树县| 浮梁县| 曲麻莱县| 天峨县| 基隆市| 忻城县| 大余县| 澄江县| 高雄县| 额尔古纳市| 荔波县| 清水县| 陵水| 兴隆县| 家居| 中西区| 吉木萨尔县|