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

    这里写图片描述

    没写过SPFA,所以找了一个SPFA的练练手!
    注意图的存储设成double

    /*
    因为负数乘负数会变正,因此初始化d数组为0,起点设为1,从起点开始
    更新各个点
    */
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int n,m;
    double road[1002][1002],d[1002];
    using namespace std;
    
    void init()
    {
        memset(d,0,sizeof(d));
    }
    
    
    void spfa(int from,int to)
    {
        memset(d,0,sizeof(d));
        d[from]=1;
        bool vis[1002];memset(vis,0,sizeof(vis));
        vis[from]=1;
        stack<int>P;
        P.push(from);
        while(!P.empty())
        {
            int v=P.top();
            P.pop();
            vis[v]=0;
            for(int i=1;i<=n;i++)
            {
                if(v==i)continue;
                if(d[i]<d[v]*road[v][i])
                {
                    d[i]=d[v]*road[v][i];
                    if(!vis[i])
                    {
                        P.push(i);
                        vis[i]=1;
                    }
                }
            }
        }
    
    
    }
    
    
    
    
    int main()
    {
        while(~scanf("%d",&n))
        {
            int i,j;
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                {
                    scanf("%lf",&road[i][j]);
                }
            }
            int q;
            scanf("%d",&q);
            while(q--)
            {
                int x,y;
                scanf("%d%d",&x,&y);
                spfa(x,y);
                if(d[y]==0)
                    printf("What a pity!
    ");
                else printf("%.3lf
    ",d[y]);
            }
        }
        return 0;
    }
    
  • 相关阅读:
    java 字符串截取
    字符编码Unicode-正则表达式验证
    APP数据加密解密
    ThreadLocal线程局部变量
    用Eclipse进行远程Debug代码
    JPA对应关系
    JPA名称规则
    dubbo环境搭建
    历史表更新数据
    api加密算法
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9386927.html
Copyright © 2011-2022 走看看