zoukankan      html  css  js  c++  java
  • HDU 1596 find the safest road

    http://acm.hdu.edu.cn/showproblem.php?pid=1596

    最短路

    ps:0可以理解为那两个城市之间没有直接的通道,少看了这个条件错惨,在sx和zbw两位祖先的帮助下认清了这个问题

    #include <iostream>
    #include <string>
    using namespace std;
    const double esp=1e-11;
    const int maxn=1001;
    int n;
    double Map[maxn][maxn];
    double dis[maxn];
    int vis[maxn];
    double Dijkstra(int s,int t)
    {
        memset(vis,0,sizeof(vis));
        memset(dis,0,sizeof(dis));
        dis[s]=1;
        for(int i=0;i<n;i++)
        {
            int u;
            double ans=-1;
            for(int j=1;j<=n;j++)
                if(!vis[j] && dis[j]>ans)
                { 
                    ans=dis[j];
                    u=j;
                }
            vis[u]=1;
            if(u==t)return ans;
            for(int j=1;j<=n;j++)
                if(!vis[j] && dis[j]<Map[u][j]*dis[u])
                    dis[j]=Map[u][j]*dis[u];
        }
    }
    int main() 
    {
        while(~scanf("%d",&n))
        {
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    scanf("%lf",&Map[i][j]);
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    if(Map[i][j]>1-esp&&Map[i][j]<1+esp)
                        Map[i][j]=0;
            int m,s,t;
            scanf("%d",&m);
            while(m--)
            {
                scanf("%d%d",&s,&t);
                double ans=Dijkstra(s,t);
                if(ans)
                    printf("%.3lf\n",ans);
                else
                    puts("What a pity!");
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    hashlib模块
    sys模块
    random模块
    time模块
    生成器、迭代器
    装饰器
    函数相关内容
    集合相关操作
    springcloud(四):Eureka的配置详解
    springcloud(二):Eureka服务注册与发现
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/2498324.html
Copyright © 2011-2022 走看看