每天一水poj1502【最短路】

来源:互联网 发布:淘宝网页设计招聘 编辑:程序博客网 时间:2024/06/07 06:43
    #include<iostream>    #include<cstdio>    #include<string.h>    #include<algorithm>    using namespace std;    #define INF 0x3f3f3f3f    #define N 110    int ma[N][N];    int n;    int dis[N];    bool vis[N];    void init()    {        for(int i=0;i<=n;i++)        {            for(int j=0;j<=n;j++)            {                if(i==j)                    ma[i][j]=0;                else                    ma[i][j]=INF;            }        }    }    void dijs()    {        for(int i=1;i<=n;i++)        {            dis[i]=ma[1][i];            vis[i]=0;        }        vis[1]=1;        int k;        for(int i=1;i<=n;i++)        {            k=-1;            int mimi=INF;            for(int j=1;j<=n;j++)            {                if(!vis[j]&&mimi>dis[j])                {                    k=j;                    mimi=dis[j];                }            }            if(k==-1)            break;            vis[k]=1;            for(int j=1;j<=n;j++)            {                if(!vis[j]&&dis[j]>dis[k]+ma[k][j])                    dis[j]=dis[k]+ma[k][j];            }        }        int Tmax=-1;        for(int i=2;i<=n;i++)        {            if(dis[i]!=INF&&Tmax<dis[i])            {                Tmax=dis[i];            }        }        printf("%d\n",Tmax);    }    int main()    {        while(~scanf("%d",&n))        {            char s[10];            init();            for(int i=2;i<=n;i++)            {                for(int j=1;j<i;j++)                {                    scanf("%s",s);                    if(s[0]!='x')                    {                        ma[i][j]=ma[j][i]=atoi(s);//这个atoi还是不常用..以前都是手打...                    }                }            }            dijs();        }        return 0;    } 
0 0
原创粉丝点击