洛谷P1730 最小密度路徑

2022-05-20 12:42:55 字數 650 閱讀 2478

題目大意:給定乙個 n 個點,m 條邊的有向圖,現有 q 個詢問,每次詢問 x 到 y 的最小密度路徑是多少。最小密度路徑的定義是路徑長度除以路徑邊數。

題解:利用矩陣乘法,可以預處理出從 x 到 y 恰好經過 k 條邊的最短路是多少。對於每次詢問,直接處理處理即可,時間複雜度為 \(o(n^4)\)。

注意:恰好經過 k 條邊的最短路不能將 g[i][i] 初始化成 0,因為邊數有實際意義,若這樣初始化意味著有自環出現。至少經過 k 條邊的同理,也不能這樣初始化。

**如下

#include using namespace std;

const int maxn=55;

const int inf=0x3f3f3f3f;

int n,m,q;

struct mat

int *operator(int i)

friend mat operator*(mat &x,mat &y)

}d[maxn];

void read_and_parse()

}void solve()

} if(flag)printf("%.3lf\n",ans);

else puts("omg!"); }}

int main()

最小密度路徑 洛谷p1730

給出一張有n個點m條邊的加權有向無環圖,接下來有q個詢問,每個詢問包括2個節點x和y,要求算出從x到y的一條路徑,使得密度最小 密度的定義為,路徑上邊的權值和除以邊的數量 輸入格式 第一行包括2個整數n和m。以下m行,每行三個數字a b w,表示從a到b有一條權值為w的有向邊。再下一行有乙個整數q。...

洛谷P1730 最小密度路徑 Floyd

時空限制 1000ms 128mb 題目描述 給出一張有n個點m條邊的加權有向無環圖,接下來有q個詢問,每個詢問包括2個節點x和y,要求算出從x到y的一條路徑,使得密度最小 密度的定義為,路徑上邊的權值和除以邊的數量 輸入格式 第一行包括2個整數n和m。以下m行,每行三個數字a b w,表示從a到b...

P1730 最小密度路徑 floyed

給出一張有n個點m條邊的加權有向無環圖,接下來有q個詢問,每個詢問包括2個節點x和y,要求算出從x到y的一條路徑,使得密度最小 密度的定義為,路徑上邊的權值和除以邊的數量 輸入格式 第一行包括2個整數n和m。以下m行,每行三個數字a b w,表示從a到b有一條權值為w的有向邊。再下一行有乙個整數q。...