題目連結: https://zerojudge.tw/ShowProblem?problemid=d908

# 內容

給你一個有向圖,輸出擁有最大權重總和的路徑之權重總和值。

# 思路

就是一題超基本的 floyd-warshall 而已

# 程式碼

#include <bits/stdc++.h>
using namespace std;
int n;
int d[101][101];
int main(){
   char c;int i, j;
   while(cin>>c>>n){
      int w,m=0;
      char a ,b;
      memset(d,0,sizeof(d));
        for (i = 0; i < n; ++i) {
            cin>>a>>b>>w;
            if(w > d[a-'A'][b-'A']) d[a-'A'][b-'A']=w;
        }
        for (int k = 0; k < n; ++k) {
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < n; ++j)
                    if ((d[i][k] * d[k][j] != 0) && (i != j))
                            d[i][j] = max(d[i][j], d[i][k] + d[k][j]);
        }
        for (j = 0; j < n; ++j)  m=max(m,d[c-'A'][j]);
        cout<<m<<endl;
   }
   return 0;
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay