題目描述
葫蘆世界有 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.新人無意識。行業新手,...