luogu P1730 最小密度路徑

2021-08-19 11:22:50 字數 730 閱讀 9369

題目傳送門:

題意:

有n個點,m條邊的有向圖。現在有q個詢問,每個詢問求x~y的最小密度是多少。注意:最小密度=所經過路徑的點勸和/路徑數

思路:

類似於floyd的dp。

f[i][j]

[l]表示從點i到j的路徑經過l條路徑的點權和最小的點權和。

則可知用乙個k來列舉i~j的中轉點,則f[i][j][l]=min(f[i][j][l],f[i][k][l-1]+f[k][j][1])即可。

**:

#include#include#includeusing namespace std;

int n,m,q;

int f[60][60][1010];

double ans;

int main()

for(int l=2;l<=m;l++)

for(int k=1;k<=n;k++)

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

f[i][j][l]=min(f[i][j][l],f[i][k][l-1]+f[k][j][1]);

scanf("%d",&q);

for(int i=1;i<=q;i++)

}

luoguP1730 最小密度路徑

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

P1730 最小密度路徑 floyed

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

最小密度路徑 洛谷p1730

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