1230: 最小花費
時間限制: 1 sec 記憶體限制: 128 mb
題目描述
在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。
輸入第一行輸入兩個正整數n,m,分別表示總人數和可以互相轉賬的人的對數。(0最後一行輸入兩個正整數a,b。資料保證a與b之間可以直接或間接地轉賬
輸出輸出a使得b到賬100元最少需要的總費用。精確到小數點後8位。
樣例輸入
3 31 2 1
2 3 2
1 3 3
1 3樣例輸出
103.07153164
提示ac_code:
/*設起點x,終點y,x->y過程中最小打了(1-dis[y])折扣;
ans *dis[y] = 100.0,
ans= 100.0/dis[y],
dis[y]越大,ans越小
所以spfa鬆弛過程中要使dis[…]盡量大
*/
#include
using namespace std;
struct edge};
double dis[
2005];
int isin[
2005];
vectorv[
2005];
double ans;
void
spfa
(int s,
int e)}}
}}intmain()
cin>>x>>y;
spfa
(x,y)
; ans =
100.0
/dis[y]
; cout<<
setprecision(8
);cout
}
最短路 最小花費(spfa)
題目鏈結 在 n 個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後 b 收到 100 元。第一行輸入兩個正整數 n,m,分別表示總人數和可以互相轉賬的人的對數。以下m行每行輸入三個正整數...
最小花費( 最短路Dijkstra或SPFA)
在 n 個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問 a 最少需要多少錢使得轉賬後 b 收到 100 元。輸入格式 第一行輸入兩個正整數 n,m,分別表示總人數和可以互相轉賬的人的對數。以下 m 行每行輸入三...
最小花費 Dijkstra
原題鏈結傳送門 d es crip tion description descri ptio n在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。i np ut inp...