洛谷P1576 最小花費

2022-05-26 03:42:10 字數 1020 閱讀 2481

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

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

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

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

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

dijkstra+堆優化

最小花費就是把每個人都看作乙個點,每次轉賬看作一條邊,花費看作邊權

最後呢要處理一下 因為要輸出錢 而不是匯率

1 #include 2 #include 3 #include 4 #include 5

#define pa pair6

using

namespace

std;7//

priority_queue, greater>q;

8 priority_queueq;

9struct

emmm e[200010

];13

int n, m, num, head[200010], ss, ee, vis[20010

];14

double dis[200010

];15

void add(int

from, int to, double

dis)

21void

dijkstra() 37}

38}39}

40int

main()

50 cin >> ss >>ee;

51dijkstra();

52 printf("

%.8lf\n

",100 /dis[ee]);

53return0;

54 }

ac code

洛谷P1576 最小花費

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

洛谷 P1576 最小花費

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

P1576 最小花費 洛谷

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