1230 最小花費(spfa)

2021-09-19 04:34:15 字數 977 閱讀 3233

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...