luoguP1576 最小花費

2022-05-03 13:54:25 字數 1225 閱讀 5573

lol新英雄**彈丸天使點選就送

兩種做法:

1.邊的權值為手續費z,從b向a跑最短路,邊跑邊處理答案

2.邊的權值為匯率,從a向b跑最短路,邊跑邊處理答案

#include#include

#include

using

namespace

std;

queue

q;double path[100010],n,m,z,dis[100010],vis[100010

];int

x,y,a,b,k;

struct

nodeedge[

200010

];void add(int xx,int yy,double

zz)int

main()

scanf(

"%d%d

",&a,&b);

for(int i=0;i<=n;++i)

dis[i]=0x3fff

; dis[b]=100;vis[b]=1

; q.push(b);

while(!q.empty())}}

}printf(

"%.8lf

",dis[a]);

return0;

}

做法1

#include#include

#include

#include

using

namespace

std;

const

int n=2507,m=1e6;

struct

nodee[m

<<1

];int

n,m,num,s,t,head[n];

double

dis[n];

bool

vis[n];

queue

q;intqread()

returnx;}

void add(int u,int v,int

w)void

spfa()}}

}}int

main()

scanf(

"%d%d

",&s,&t);

spfa();

printf(

"%.8lf\n

",dis[s]);

return0;

}

做法2

洛谷1576最小花費

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

P1576 最小花費

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

洛谷1576最小花費

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