???样例没过的超级蒟蒻
  • 板块P1576 最小花费
  • 楼主B1ade_
  • 当前回复0
  • 已保存回复0
  • 发布时间2020/9/8 21:58
  • 上次更新2023/11/5 13:31:50
查看原帖
???样例没过的超级蒟蒻
158878
B1ade_楼主2020/9/8 21:58
#include<bits/stdc++.h>
using namespace std;
double dis[2005][2005],c[2005];
bool f[2005]={0};
int main()
{
	int n,m;cin>>n>>m;
	for (int i=1;i<=m;++i)
	{
		int x,y;cin>>x>>y;
		cin>>dis[x][y];
		dis[x][y]=(100-dis[x][y])/100;
		dis[y][x]=dis[x][y];
	}
	int s,t;cin>>s>>t;
	for (int i=1;i<=n;++i) c[i]=dis[s][i];
	c[s]=1;
	f[s]=1;
	while(!f[t])
    {
        int maxx=0;
        int k;
        for (int i=1;i<=n;++i)
           if (!f[i]&&c[i]>maxx)
            {
                maxx=c[i];
                k=i;
            }
        f[k]=1;
        for (int j=1;j<=n;j++)
           if (c[k]*dis[k][j]>c[j]&&!f[j])
             c[j]=c[k]*dis[k][j];
    }    
	printf("%0.8lf",100/c[t]);
	return 0;
}
``
样例输出:103.09278351
2020/9/8 21:58
加载中...