P2910Clear And Present Danger S
一、题目描述
二、解题思路
floyd模板题
三、代码实现
1 #include "bits/stdc++.h" 2 using namespace std; 3 const int inf = INT_MAX; 4 long long dp[110][110]; 5 int rd[11000]; 6 int main() 7 { 8 int n,m; 9 int u; 10 cin >> n >> m; 11 for(int i = 1;i <= m;i++) 12 cin >> rd[i]; 13 for(int i = 1;i <= n;i++) 14 for(int j = 1;j <= n;j++) 15 cin >> dp[i][j]; 16 for(int k = 1;k <= n;k++) 17 for(int i = 1;i <= n;i++) 18 for(int j = 1;j <= n;j++) 19 dp[i][j] = min(dp[i][j],dp[i][k] + dp[k][j]); 20 long long danger = 0; 21 for(int i = 1;i <= m - 1;i++) 22 danger += dp[rd[i]][rd[i + 1]]; 23 cout << danger; 24 return 0; 25 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}