lol新英雄**彈丸天使點選就送
兩種做法:
1.邊的權值為手續費z,從b向a跑最短路,邊跑邊處理答案
2.邊的權值為匯率,從a向b跑最短路,邊跑邊處理答案
#include#include做法1#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;
}
#include#include做法2#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;
}
洛谷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...