P1629邮递员送信

一、题目描述

  

 

 二、解题思路

  Floyd模板题

三、代码实现

 1 #include "bits/stdc++.h"
 2 long long dp[1100][1100];
 3 const int inf = 1e9;
 4 using namespace std;
 5 int main()
 6 {
 7     ios::sync_with_stdio(false);
 8     cin.tie(0);
 9     cout.tie(0);
10     int n,m;
11     long long ans = 0;
12     cin >> n >> m;
13     for(int i = 1;i <= n;i++)
14         for(int j = 1;j <= n;j++)
15              dp[i][j] = inf;
16     for(int i = 1;i <= m;i++){
17         long long u,v,w;
18         cin >> u >> v >> w;
19         dp[u][v] = min(dp[u][v],w);
20     }
21     for(int k = 1;k <= n;k++)
22         for(int i = 1;i <= n;i++)
23             for(int j = 1;j <= n;j++)
24                 dp[i][j] = min(dp[i][j],dp[i][k] + dp[k][j]);
25     for(int i = 2;i <= n;i++)
26         ans += dp[1][i] + dp[i][1];  
27     cout << ans << endl;
28     return 0;
29 }
posted @ 2022-02-13 19:39  scannerkk  阅读(44)  评论(0)    收藏  举报