zoukankan      html  css  js  c++  java
  • HDU Tody HDU2112

    不想用floyd了 也不一定适合  floyd只能处理小数据

    dijkstra算法

    wa了很久   一个是dijkstra里面的u   导致RE了无数次   下标溢出

    还有就是注意细节  当起点和终点是一个地方的时候  输出0

    #include<iostream>
    #include<map>
    #include<cstdio>
    #include<cstring>
    #include<string>
    using namespace std;
    #define INF 99999999
    int m1[155][155];
    map<string,long long>ma;
    int dis[155];
    int vis[155];int c;
    
    void di()
    {   memset(vis,0,sizeof(vis));
        for(int i=1;i<=c;i++)
             dis[i]=m1[1][i];
        vis[1]=1;
        for(int i=0;i<c-1;i++)
        {
            int minn=INF;
            int u;
            for(int j=1;j<=c;j++)
            {
                if(vis[j]==0&&dis[j]<minn)
                {
                    u=j;
                    minn=dis[j];
    
                }
    
            }
            vis[u]=1;
            for(int j=1;j<=c;j++)
            {
                if(vis[j]==0&&dis[u]+m1[u][j]<dis[j])
                {
                    dis[j]=dis[u]+m1[u][j];
                }
    
            }
    
    
        }
    
    
    
    }
    
    
    
    int main()
    {
     int n;
    
     while(scanf("%d",&n)==1&&n!=-1)
     {    c=0;
          ma.clear();
         string s1,s2;
        int ok=1;
         cin>>s1>>s2;if(s1==s2){ok=0;}
         ma[s1]=++c;
         ma[s2]=++c;
         int time1;
    
         for(int i=0;i<=153;i++)
            for(int j=0;j<=153;j++)
         {
             if(i==j)m1[i][j]=0;
             else m1[i][j]=INF;
    
         }
    
         while(n--)
         {
             cin>>s1>>s2>>time1;
             if(ma[s1]==0)ma[s1]=++c;
             if(ma[s2]==0)ma[s2]=++c;
             if(time1<m1[ ma[s1] ][ ma[s2]  ])
             {
                 m1[ ma[s1] ][ ma[s2]  ]=m1[ ma[s2] ][ ma[s1] ]=time1;
    
             }
    
         }
    
    
         di();
    
      if(!ok)printf("0
    ");
       else {
         if(dis[2]!=INF)
         printf("%d
    ",dis[2]);
         else
            printf("-1
    ");
       }
    
    
    
     }
    
    
    
    return 0;
    }
    View Code
  • 相关阅读:
    JQuery POST请求乱码...
    open source e-business software
    about tomcat ssl
    使用汉文博士检索汉字
    使用汉文博士检索词条
    安装并运行汉文博士
    汉文博士正式版发布
    汉文博士新测试版0.5.3.2081发布
    汉文博士新测试版0.5.3.2020发布
    汉文博士新测试版0.5.3.2010发布
  • 原文地址:https://www.cnblogs.com/bxd123/p/10326388.html
Copyright © 2011-2022 走看看