zoukankan      html  css  js  c++  java
  • zoj2750

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<algorithm>
    using namespace std;
    const int inf = 1000000000;
    const int maxn = 1010;
    int edge[maxn][maxn];
    int s[maxn],dist[maxn],i,j,n;
    struct node
    {
        int t ; char front[5],back[5];
    }dict[maxn];
    void dijkstra()
    {
        for(i=0;i<n;i++)
        {
            dist[i] = edge[0][i];
            s[i] = 1;
        }
        s[0] = -1;
        for(i=1;i<n;i++)
        {
            int min = inf,v=0;
            for(j=0;j<n;j++)
            {
                if(s[j]!=-1 && dist[j]<min)
                {
                    min = dist[j];
                    v = j;
                }
            }
            s[v] = -1;
            for(j=0;j<n;j++)
            {
                if(s[j]!=-1 && edge[v][j]<inf && edge[v][j]+dist[v]<dist[j])
                {
                    dist[j] = edge[v][j] + dist[v];
                }
            }
        }
        if(dist[n-1] == inf)
            printf("-1
    ");
        else
        {
            printf("%d
    ",dist[n-1]);
        }
    }
    int main()
    {
    //    int n;
        while(scanf("%d",&n)!=EOF && n)
        {
            int k;char d[100];
            for(k=0;k<n;k++)
            {
                scanf("%d %s",&dict[k].t,d);
                int len = strlen(d);
                for(i=0,j=len-1;i<4;i++,j--)
                {
                    dict[k].front[i] = d[i];
                    dict[k].back[3-i] = d[j];
                    dict[k].front[4]  = dict[k].back[4] = '';
                }
    
            }
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    edge[i][j] = inf;
                    if(i==j)
                        edge[i][j] = 0;
                    //    continue;
                    else if(strcmp(dict[i].back,dict[j].front) ==0)
                    {
                        edge[i][j] = dict[i].t;
                    }
                }
            }
            dijkstra();
    
        }
        return 0;
    }
  • 相关阅读:
    继续无题
    关于自杀的一些观点
    详解js运算符
    数据库批量 之 Oracle
    数据库批量 之 DB2
    linux压缩(解压缩)命令详解
    Cron
    解压命令
    常见web错误码
    cmd命令大全
  • 原文地址:https://www.cnblogs.com/Deng1185246160/p/3213647.html
Copyright © 2011-2022 走看看