SSLOJ2206最小花費 P1576

2021-10-13 12:38:04 字數 1297 閱讀 2064

在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。
第一行輸入兩個用空格隔開的正整數n和m,分別表示總人數和可以互相轉賬的人的對數。以下m行每行輸入三個用空格隔開的正整數x,y,z,表示標號為x的人和標號為y的人之間互相轉賬需要扣除z%的手續費(z<100)。最後一行輸入兩個用空格隔開的正整數a和b。資料保證a與b之間可以直接或間接地轉賬。
輸出a使得b到賬100元最少需要的總費用。精確到小數點後8位。
3 3

1 2 1

2 3 2

1 3 3

1 3103.07153164

dij過掉(堆優化)

code:

#include

#include

#include

#include

using

namespace std;

double b[

2001];

int e=

1,first[

2001];

struct f a[

201001];

bool book[

2001];

struct f2 p;

bool

operator

<

(const f2 &x,

const f2 &y)

priority_queue c;

voidjb(

int x,

int y,

double z)

intmain()

scanf

("%d%d"

,&q2,

&q);

for(

int i=

1;i<=n;i++

) b[i]

=0x7fffffff

; b[q2]

=100

; p.x=

100.0

,p.y=q2;

c.push

(p);

for(

int j=

1;jsize()

&&book[q]==0

;j++)}

}printf

("%.8f"

,b[q]);

return0;

}

最小花費 ssl2206 dijkstra

題目描述 在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,表...