1 条题解
-
1
#include <algorithm> using namespace std; typedef long long ll; const int MAXN = 105; const ll INF = 1e18; ll dist[MAXN][MAXN]; int A[10005]; int main() { int N, M; cin >> N >> M; for(int i = 1; i <= M; i++) { cin >> A[i]; } // 读入邻接矩阵 for(int i = 1; i <= N; i++) { for(int j = 1; j <= N; j++) { cin >> dist[i][j]; } } // Floyd for(int k = 1; k <= N; k++) for(int i = 1; i <= N; i++) for(int j = 1; j <= N; j++) dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]); ll ans = 0; for(int i = 1; i <= M-1; i++) { int u = A[i]; int v = A[i+1]; ans += dist[u][v]; } cout << ans << endl; return 0; }
信息
- ID
- 2451
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者