LYOI 78 小澳的葫蘆

2021-08-10 15:18:25 字數 1307 閱讀 6881

題目描述

葫蘆世界有 n n n 個葫蘆,標號為 1−n 1 - n 1−n。n n n 個葫蘆由 m m m 條藤連線,每條藤連線了兩個葫蘆,這些藤構成了一張有向無環圖。小澳爬過每條藤都會消耗一定的能量。

小澳站在 1 1 1 號葫蘆上(你可以認為葫蘆非常大,可以承受小澳的體重),他想沿著藤爬到 n n n 號葫蘆上,其中每個葫蘆只經過一次。

小澳找到一條路徑,使得消耗的能量與經過的葫蘆數的比值最小。

輸入格式

輸入檔案第一行兩個正整數 n,m n, m n,m,分別表示葫蘆的個數和藤數。

接下來 m m m 行,每行三個正整數 u,v,w u, v, w u,v,w,描述一條藤,表示這條藤由 u u u 連向 v v v,小澳爬過這條藤需要消耗 w w w 點能量。

輸出格式

一行乙個實數,表示答案(誤差不超過 10 ^ )

題目分析

這道題目有多種解法,我在這裡說一種。我們用dis[x][y]表示走到x號點時已走了y個點(包括x號點)的最短距離。然後跟普通的spfa差不多了。

#include

#include

#include

#include

#define n 210

#define m 2010

#define fo(i,a,b) for(i=a;i<=b;i++)

using namespace std;

struct arrbot[5000];

int head[m*2],dis[n][n],d[n*n][2];

int tot,i,j,m,n,x,y,z,t,w,now,num;

double ans;

bool vis[n][n];

void add(int x,int y,int z)

int main()

memset(dis,127,sizeof(dis));

t=0;w=1;

dis[1][1]=0;

d[1][0]=d[1][1]=1;

while (t

now=d[++t][0];num=d[t][1];

//這裡記錄一下即可,乙個是當前節點,乙個是當前個數

for(i=head[now];i;i=bot[i].nx)}}

vis[now][num]=0;

}ans=2139062143;

fo(i,2,n)

if (dis[n][i]!=2139062143&&(double)dis[n][i]/iprintf("%.3lf",ans);

}

小澳的葫蘆 最優比例路徑

最優比例路徑,二分乙個答案,用所有路徑長度減去這個二分出來的答案,找一條長度為0的最短路 小數和精度的問題可以用乘乙個很大的數解決 嗯,某中題庫封掉了我的帳號 include include define n 401 define m 4001 define f 10000 define inf 0...

矩陣快速冪 小澳的座標系

矩陣快速冪一般是為了求解遞推問題 eg 菲波那切數列 關於矩陣快速冪,可以參見這裡and這裡 題目描述 小澳者表也,數學者景也,表動則景隨矣。小澳不喜歡數學,可數學卻待小澳如初戀,小澳睡覺的時候也不放過。小澳的夢境中出現了乙個平面直角座標系,自原點,向四方無限延伸。小澳在座標系的 原點,他可以 向上...

測試小故事78 測試策略

策略 計策 謀略。實現既定目標的步驟 方法集合。也許是做事時間太長 做事也越來越古板,因此無論做什麼事都不再隨便 少了衝動,做什麼事都要講究個方式和方法。測試策略,每次測試都在談 開始時制定 執行時檢查,結束時回顧總結。但每每總會被忽略 被誤判。被忽略 被誤判,可能的原因 1.新人無意識。行業新手,...