问题标题: 酷町堂:6254 最小转账费 WA80

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

#include <bits/stdc++.h>
using name** std;
double a[2001][2001],dis[2001]={0},maxn;
int n,m,i,j,k,x,y,f[2001]={0};
void init(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        scanf("%d%d",&j,&k);
        scanf("%lf",&a[j][k]);
        a[j][k]=(100-a[j][k])/100;
        a[k][j]=a[j][k];
    }
    cin>>x>>y;
}
void da(int x){
    for(i=1;i<=n;i++)dis[i]=a[x][i];
    dis[x]=1,f[x]=1;
    for(int i=1;i<=n-1;i++){
        maxn=0;
        for(j=1;j<=n;j++){
            if(f[j]==0&&dis[j]>maxn){k=j;maxn=dis[j];}
        }
        f[k]=1;
        if(k==y)break;
        for(j=1;j<=n;j++){
            if(f[j]==0&&dis[k]*a[k][j]>dis[j])dis[j]=dis[k]*a[k][j];
        }
    }
}
int main(){
    init();
    da(x);
    p**ntf("%0.8lf",100/dis[y]);
    ret**n 0;
}

80分.........................

汪宇航在2021-08-04 18:56:39追加了内容

D

汪宇航在2021-08-04 19:21:05追加了内容

D

汪宇航在2021-08-04 20:06:04追加了内容

D!

汪宇航在2021-08-05 08:17:09追加了内容

DING

汪宇航在2021-08-05 08:19:27追加了内容

@赵逸凡 @陈曦 @李瑞曦 @曹博扬 @汪恺恒 @葛新 @王文博 @酷町侠 @酷町猫  @酷丁 @酷町喵~o( =∩ω∩= )o~ 

汪宇航在2021-08-05 13:27:23追加了内容

DD


0
已采纳
杜承俊
杜承俊
资深守护
资深守护

尊敬的汪宇航先生

我不会

但是我有洛谷啊!

https://www.luogu.com.cn/p**blem/P1576是一样的,可以看看题解

谢谢

此致,敬礼

2021/8/5

杜承俊

杜承俊在2021-08-05 09:44:15追加了内容

P1576 最小花费

0
0
李奕歌
李奕歌
初级天翼
初级天翼

核心:

n=read();
    m=read();
    for (int i=1;i<=m;i++)
    {
        X=read();Y=read();Z=read();
        add(X,Y,Z);
        add(Y,X,Z);
    }
    t=read();s=read();
    for (int i=0;i<=n+1;i++) dis[i]=23333333.0;
    q.push(s);
    dis[s]=100.0;
    vis[s]=1;
    while (!q.empty())
    {
        u=q.f**nt();q.pop();
        vis[u]=0;
        for (int i=po[u];i;i=ne[i])
        {
            v=to[i];
            if (dis[v]>(double)(dis[u])/(1-0.01*wi[i]))
            {
                dis[v]=(double)(dis[u])/(1-0.01*wi[i]);
                if (vis[v]==0)//入队
                {
                    vis[v]=1;
                    q.push(v);
                }
            }
        }
    }

 

我要回答