zoukankan      html  css  js  c++  java
  • POJ 1502 MPI Maelstrom 最短路

    最短路模板。

    题意:从‘1’点发出一个信号到各个点,不同的点可以同时发出一个信号但到达目标的时间不同,问所有点接受到信号所耗费的最短时间为多少。

    思路:迪杰斯特拉求出1点到各个点的最短路,遍历一遍找到其中的最大值就可以了。

    #include<stdio.h>
    #include<string.h>
    #include<cstring>
    #include<string>
    #include<math.h>
    #include<queue>
    #include<algorithm>
    #include<iostream>
    #include<stdlib.h>
    #include<cmath>
    
    #define INF 0x3f3f3f3f
    #define MAX 1005
    
    using namespace std;
    
    int Map[MAX][MAX],n,vis[MAX],dist[MAX];
    
    void Add(char str[],int x,int y)
    {
        int i,len=strlen(str),num=0;
    
        if(str[0]=='x')
        {
            Map[x][y]=Map[y][x]=INF;
        }
    
        else
        {
            for(i=0;i<len;i++)
            {
                num=num*10+(str[i]-'0');
            }
    
            Map[x][y]=Map[y][x]=num;
        }
    }
    
    int dij()
    {
        int i,j,k,minn;
    
        memset(vis,0,sizeof(vis));
        for(i=2;i<=n;i++)
            dist[i]=Map[1][i];
    
        vis[1]=1;
    
        for(i=1;i<n;i++)
        {
            minn=INF;
            for(j=1;j<=n;j++)
            {
                if(minn > dist[j] && !vis[j])
                {
                    minn=dist[j];
                    k=j;
                }
            }
    
            vis[k]=1;
    
            for(j=1;j<=n;j++)
            {
                if(dist[j] > dist[k] + Map[k][j])
                    dist[j]=dist[k]+Map[k][j];
            }
        }
    
        int ans=0;
    
        for(i=2;i<=n;i++)
            ans=max(dist[i],ans); //遍历找到最大边
        return ans;
    }
    
    int main()
    {
        int i,j;
        char str[MAX];
    
        while(scanf("%d",&n)!=EOF)
        {
            for(i=2;i<=n;i++)
            {
                for(j=1;j<i;j++)
                {
                    scanf("%s",str);
                    Add(str,i,j);
                }
            }
    
            int ans=dij();
    
            printf("%d
    ",ans);
        }
    
        return 0;
    }
    

      

  • 相关阅读:
    CSS中属性Padding的参数个数定义(转)
    动态加载js
    jquery解决图片路径不存在
    jquery插件
    js 判断 undefined
    (转)ExtJS4 Grid1学习1
    ExtJS4 表单Form Panel
    浏览器标题 闪烁效果
    C#正则表达式 委托替换
    简单服务器端控件 Simple Server Control
  • 原文地址:https://www.cnblogs.com/alan-W/p/5665622.html
Copyright © 2011-2022 走看看