実験データ構造7の3363 =グラフ理論:ALICE計画

1の#include <stdio.hの>
 2の#include <STDLIB.H>
 3の#include < 文字列・H>
 4  の#define INF 0x3f3f3f3f
 5  INT [マップ1000年 ] [ 1000年 ]、MAP2 [ 1000年 ] [ 1000 ]。
6  INT N。
7  ボイドfloyed()
 8  {
 9      INT I、J、K。
10      のための(K = 0 ; K <N、K ++ 11      {
 12          のために(私は= 0、I <N; I ++ 13         {
 14              (J = 0 ; J <N; J ++ 15              {
 16                  であれば(マップ[I] [J]>マップ[I] [K] + マップ[K] [J])
 17                  {
 18                      地図[I] [J] =マップ[i]が[K] + マップ[K] [J]。
19                      MAP2 [I] [J] = MAP2 [I] [K] + MAP2 [K] [J]。
20                  }
 21                  そう であれば(マップ[I] [J] ==マップ[I] [K] + マップ[K] [J])
 22                  {
 23                      であれば(MAP2 [I] [J]> MAP2 [I] [K ] + MAP2 [K] [J])
 24                          MAP2 [I] [J] = MAP2 [I] [K] +MAP2 [K] [J]。
25  
26                  }
 27              }
 28          }
 29      }
 30  }
 31  のint main()の
 32  {
 33      INT T。
34      のscanf(" %dの"、&T)。
35      一方(T-- 36      {
 37          のint M、開始、終了、A、B、C、D。
38          のscanf(" %D%D "、&​​N、&M)。
39          のscanf(" %D%D "、&開始、および終了)。
40          のmemset(マップ、INF、はsizeof (MAP))。
41          のmemset(MAP2、0はsizeof (MAP2))。
42          一方(M-- 43          {
 44              のscanf(" %D%D%D%D "、&​​、&B、&C&D)。
45              地図[A] [B] =マップ[B] [A] = C。
46              MAP2 [A] [B] = MAP2 [B] [A] = D。
47          }
 48          floyed(N)
49          のprintf(" %D%D \ N "、マップは、[終了] MAP2を[開始] [開始] [終了])。
50      }
 51      リターン 0 52 }

 

おすすめ

転載: www.cnblogs.com/Angfe/p/11828088.html