zoukankan      html  css  js  c++  java
  • HDU 2112 HDU Today

     http://acm.hdu.edu.cn/showproblem.php?pid=2112

    把地名和数字对应一下,就变成模板题了

    #include <iostream>
    #include <string>
    using namespace std;
    const int INF=10000000;
    const int maxn=101;
    int nid,f;
    int Map[maxn][maxn];
    int vis[maxn];
    int dis[maxn];
    string Id[maxn];
    int strtonum(string s)
    {
        for(int i=0;i<nid;i++)
            if(Id[i] == s)
                return i;
        Id[nid]=s;
        return nid++;
    }
    int Dijkstra(int s,int t)
    {
        for(int i=0;i<nid;i++)
            dis[i]=INF;
        dis[s]=0;
        for(int i=0;i<nid;i++)
        {
            int ans=INF,u;
            for(int j=0;j<nid;j++)
                if(!vis[j] && dis[j]<ans)
                { 
                    ans=dis[j];
                    u=j;
                }
            vis[u]=1;
            if(u==t){f=1;return ans;}
            for(int j=0;j<nid;j++)
                if(Map[u][j]!=INF && dis[j]>Map[u][j]+dis[u])
                    dis[j]=Map[u][j]+dis[u];
        }
    }
    int main() 
    {
        int n;
        while(scanf("%d",&n),n!=-1)
        {
            nid=f=0;
            memset(vis,0,sizeof(vis));
            for(int i=0;i<maxn;i++)
                for(int j=0;j<maxn;j++)
                    Map[i][j]=INF;
            string p,q,a,b;
            int d,s,t;
            cin >> p >> q;
            s=strtonum(p);
            t=strtonum(q);
            while(n--)
            {
                cin >> a >> b >> d;
                int x,y;
                x=strtonum(a);
                y=strtonum(b);
                if(Map[x][y]>d)
                    Map[x][y]=Map[y][x]=d;
            }
            int ans=Dijkstra(s,t);
            if(f)
                printf("%d\n",ans);
            else 
                puts("-1");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    缺失的第一个正数
    tuple用法
    整数转罗马数字
    三种时间格式的转换
    不同包的调用
    正则表达式
    lgb模板
    线性回归
    时间序列的特征
    3D聚类
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/2498044.html
Copyright © 2011-2022 走看看