zoukankan      html  css  js  c++  java
  • zoj1665 dij变形

    既然输入的是损坏率,那1-x就是剩余的。最后只要剩余的最大。

    #include<stdio.h>
    #include<string.h>
    #define Max 99999999
    const int maxn=1003;
    double dis[maxn],map[maxn][maxn];
    int vis[maxn],n,val[maxn];
    void init()
    {
        int i,j;
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                if(i==j)
                    map[i][j]=0;
                else map[i][j]=0;
    }
    void dij()
    {
        int i,j,pos;
        pos=n;
        memset(vis,0,sizeof(vis));
        for(i=1;i<=n;i++)
            dis[i]=0;
        dis[pos]=1;
    //    vis[pos]=1;
        for(i=1;i<=n;i++)
        {
            double min=-Max;
            for(j=1;j<=n;j++)
            {
                if(!vis[j]&&min<dis[j])
                {
                    pos=j;
                    min=dis[j];
                }
            }
            vis[pos]=1;
            for(j=1;j<=n;j++)
            {
                if(!vis[j]&&dis[j]<map[pos][j]*dis[pos])
                    dis[j]=map[pos][j]*dis[pos];
            }
        }
    }
    int main()
    {
        int i,j,m;
        double cost;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            init();
            for(i=1;i<n;i++)
                scanf("%d",&val[i]);
            for(i=1;i<=m;i++)
            {
                int x,y;
                scanf("%d%d%lf",&x,&y,&cost);
                if(map[x][y]<1-cost)
                    map[x][y]=map[y][x]=1-cost;
            }
            /*for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                {
                    printf("%.2lf ",map[i][j]);
                }
                printf("
    ");
            }*/
            double ans=0;
            dij();
            /*for(i=1;i<=n;i++)
                printf("%d ",dis[i]);
            printf("
    ");*/
            for(i=1;i<n;i++)
                ans+=val[i]*dis[i];
            printf("%.2lf
    ",ans);
        }
    }
  • 相关阅读:
    用react+redux+webpack搭建项目一些疑惑
    ajax基本原理实现
    jsonp详细原理之一
    因为文件共享不安全,所以你不能连接到文件共享
    python xml模块
    python os模块
    python tickle模块与json模块
    python datetime模块
    python sys模块
    python time模块
  • 原文地址:https://www.cnblogs.com/sweat123/p/4682146.html
Copyright © 2011-2022 走看看