洛谷P1576 最小花費

2021-08-03 07:03:36 字數 1087 閱讀 4508

在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。

輸入格式:

第一行輸入兩個正整數n,m,分別表示總人數和可以互相轉賬的人的對數。

以下m行每行輸入三個正整數x,y,z,表示標號為x的人和標號為y的人之間互相轉賬需要扣除z%的手續費 (z<100)。

最後一行輸入兩個正整數a,b。資料保證a與b之間可以直接或間接地轉賬。

輸出格式:

輸出a使得b到賬100元最少需要的總費用。精確到小數點後8位。

輸入樣例#1:

3 3

1 2 1

2 3 2

1 3 3

1 3

輸出樣例#1:

103.07153164

1<=n<=2000

這題是很裸的最短路好嗎,不要和我多說什麼,沒什麼可說的。

不過,貌似不能用spfa吧(反正我不知道怎麼用spfa做)

(我貌似加了個佇列優化,只是閒的,貌似不加也能過)

下來貼**:

#include

#define inf 1000000000

using

namespace

std;

struct edge;

typedef pair pii;

int n,m;

int a,b;

vector

e[2001];

int in[2001];

double d[2001];

priority_queuevector

,greater> q;

void dijkstra()

in[k]=1;

for(int i=0;iif(d[k]/h.wint main()

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

cin>>a>>b;

dijkstra();

printf("%.8lf",d[a]);

return

0;}

洛谷 P1576 最小花費

題目戳 題目描述 在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。輸入輸出格式 輸入格式 第一行輸入兩個正整數n,m,分別表示總人數和可以互相轉賬的人的對數。以下m行...

P1576 最小花費 洛谷

在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。輸入格式 第一行輸入兩個正整數n,m,分別表示總人數和可以互相轉賬的人的對數。以下m行每行輸入三個正整數x,y,z,表...

洛谷P1576 最小花費

在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。第一行輸入兩個正整數n,m,分別表示總人數和可以互相轉賬的人的對數。以下m行每行輸入三個正整數x,y,z,表示標號為x...