題目背景
題目描述
在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,m<=100000
換個思路,將最小路轉成求最大路,dijkstra。。
#include
using
namespace
std;
const
int maxn=100005;
int n,m,a,c;
double dis[maxn],f[2005][2005];
bool b[maxn];
int main()
scanf("%d%d",&a,&c);
for(int i=1;i<=n;i++) dis[i]=f[a][i];
dis[a]=1;b[a]=1;
for(int i=1;i<=n;i++)
}if(k==c) break;
dis[k]=mn;
b[k]=1;
for(int j=1;j<=n;j++)
}printf("%.8lf",100/dis[c]);
}
洛谷1576最小花費
題目背景 題目描述 在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行...