20分,不知道错哪了求调?
查看原帖
20分,不知道错哪了求调?
1132349
liyixiang20110501楼主2024/7/5 23:51
#include <bits/stdc++.h>
using namespace std;
struct ab{
	long long to;
   double l;
};
long long n,m,a,b;
double pay[20005];
vector<ab>s[20005];
void dfs (double payy,long long num){
	pay[num]=payy;
	for (long long i=0;i<=s[num].size();i++)
		if (pay[s[num][i].to]>payy/(double)((100-s[num][i].l)/100)) dfs((double)(payy/(double)((100-s[num][i].l)/100)),s[num][i].to);
}
int main(){
	cin>>n>>m;
	for (long long i=1;i<=m;i++){
		long long x,y,z;
		cin>>x>>y>>z;
		s[x].push_back((ab){y,z});
		s[y].push_back((ab){x,z});
	}
	for (long long i=1;i<=n;i++)
	    pay[i]=99990;
	cin>>a>>b;
	dfs(100,b);
	printf("%.8lf",pay[a]);
	return 0;
}

测试如下

2024/7/5 23:51
加载中...