zoukankan      html  css  js  c++  java
  • poj 1502

    题目链接:http://poj.org/problem?id=1502

    dijkstra算法

    应该是水题,但自己第一次写,贡献了好多wrong。。。

    最后0MS 也對得住wrong的那几次了

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define Max 0x3f3f3f3f
    int tu[150][150];
    int set[150];
    int sum[150];
    void init(int n)
    {
        int i,j;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                tu[i][j]=Max;
            }
            set[i]=0;
            sum[i]=Max;
        }
        
    }
    int dijk(int n,int s)
    {
        int i,min,max=0,ti,z=n-1;
        for(i=1;i<=n;i++)
        {
            sum[i]=tu[1][i];
        }
        sum[1]=0;
        set[1]=1;
        while(z--){
            min=Max;
            for(i=1;i<=n;i++)
            {
                if(set[i]==0)
                {
                    if(sum[i]>sum[s]+tu[s][i])
                    {
                        sum[i]=sum[s]+tu[s][i];
                    }
                    
                    if(min>sum[i])
                    {
                        min=sum[i];
                        ti=i;
                    }
                }
            }
            if(min>max)
            {
            max=min;
            }
            set[ti]=1;
            s=ti;
        }
        return max;
    }
    int toint(char a[])
    {
       int i,sum=0,t=1;
       for(i=strlen(a)-1;i>=0;--i)
       {
           sum+=(a[i]-'0')*t;
           t*=10;
       }
       return sum;
    }
    int main(int argc, char** argv) {
    
        int n,i,j,temp,max;
        char tem[50];
       scanf("%d",&n);
       
       
        init(n);
         
        for(i=2;i<=n;i++)
        {
            for(j=1;j<i;j++)
            {
                scanf("%s",tem);
                if(tem[0]!='x')
                {
                    temp=toint(tem);
                    tu[i][j]=temp;
                    tu[j][i]=temp;
                }
                
            }
        }
             max=dijk(n,1);
    
        printf("%d\n",max);
    
       
        return (EXIT_SUCCESS);
    }
  • 相关阅读:
    骑行封龙山
    静夜
    骑行伏羲台
    我?
    生活挺好
    多事之秋,大家注意安全
    看不到啊看不到
    个人时间管理
    给DataGrid设置中文列名
    食用油是那么让人又爱又恨!
  • 原文地址:https://www.cnblogs.com/fengyuehan/p/poj1502.html
Copyright © 2011-2022 走看看