这道题貌似在原来学长给我们的搞的小比赛中出过!

这次又让我遇到,果断拿下!

不过方法很蠢,跑了1000多ms,虽然要求5000ms以内!

题目就是给你一些位置之间的距离,然后再让你求特定的两点之间的距离!就是个样子滴!

只不过这道题更切合实际,给你的位置是字符串!

我的处理方法是将字符串转化为数字,数字不就是我们最熟悉的了吗!嘎嘎嘎···················

#include<stdio.h>

#include<string.h>
#define MAX 1000000000000

int main()

{

    __int64 map[200][200],i,j,k,n,m,r,t,s;

    char str[200][200],str1[200],str2[200];

    while(scanf("%I64d",&n)!=EOF&&n>0)

    {

        for(i=0;i<=190;i++)

            for(j=0;j<=190;j++)

                map[i][j]=MAX;

        scanf("%s %s",str1,str2);

        

        strcpy(str[0],str1);

        strcpy(str[1],str2);

        m=2;

        for(j=1;j<=n;j++)

        {

            scanf("%s %s %I64d",str1,str2,&s);

            for(i=0;i<m;i++)//转化的过程

                if(strcmp(str[i],str1)==0)

                {

                    r=i;break;

                }

                if(i==m)

                {

                    strcpy(str[m],str1);

                    r=m;

                    m++;

                }

                for(i=0;i<m;i++)

                    if(strcmp(str[i],str2)==0)

                    {

                        t=i;break;

                    }

                if(i==m)

                {

                    strcpy(str[m],str2);

                    t=m;

                    m++;

                }

                if(map[r][t]>s)

                {

                map[r][t]=s;

                map[t][r]=s;

                }

        }

        if(strcmp(str[0],str[1])==0)//特别注意,始点与终点相同的情况!这点使我wrong了几次!哎···,当知道这个特例时我将这个if语句放在前面了,结果还是wrong了,想了好久//才明白,原来是continue直接跳过了整个循环导致后面的内容输不进来了!囧!!!

        {

            printf("0\n");

            continue;

        }

        for(k=0;k<m;k++)

            for(i=0;i<m;i++)

                for(j=0;j<m;j++)

                    if(map[i][j]>map[i][k]+map[k][j])

                        map[i][j]=map[i][k]+map[k][j];

                    if(map[0][1]==MAX)

                        printf("-1\n");

                    else

                        printf("%I64d\n",map[0][1]);

    }

    return 0;

}

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112

hdu 2112 HDU Today (floyd算法)的更多相关文章

  1. HDU 2066 最短路floyd算法+优化

    http://acm.hdu.edu.cn/showproblem.php?pid=206 题意 从任意一个邻居家出发 到达任意一个终点的 最小距离 解析 求多源最短路 我想到的是Floyd算法 但是 ...

  2. hdu 2112 HDU Today

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的 ...

  3. HDU 2112 HDU Today(Dijkstra)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others ...

  4. HDU 2112 HDU Today (Dijkstra算法)

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. HDU 2112 HDU Today &lt;SPFA算法+map函数&gt;

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  6. hdu 2112 HDU Today (最短路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给出起点和终点,然后算出最短的路. 不过有好多细节要注意: (1)起始点和终止点相等的 ...

  7. HDU 2112 HDU Today(STL MAP + Djistra)

    题目链接:HDU Today 立即集训要開始,抓紧时间练练手,最短路的基础题,第一次用STL的map 题目非常水,可是错了N遍.手贱了.本题不优点理的就是把地名转化为数字 #include <i ...

  8. hdu 2112 HDU Today 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloo ...

  9. HDU 2112 HDU Today(最短路径+map)

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

随机推荐

  1. 22 Gobs of data 设计和使用采集数据的包

    Gobs of data 24 March 2011 Introduction To transmit a data structure across a network or to store it ...

  2. 缓存数据库-redis数据类型和操作(string)

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合) 一:String(字符串) string是redis ...

  3. java 证书体系及应用,自已做https证书

    原文: https://blog.csdn.net/wjq008/article/details/49071857 接下来我们将域名www.zlex.org定位到本机上.打开C:\Windows\Sy ...

  4. PL/SQL开发中动态SQL的使用方法

    一般的PL/SQL程序设计中,在DML和事务控制的语句中可以直接使用SQL,但是DDL语句及系统控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DDL语句及系统控制语句,可以通过使 ...

  5. SonarQube的安装、配置与使用(windows)

    onarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 准备工作: 1.jdk(不再介绍) 2.sonarqube:htt ...

  6. windows环境下的heap spray+stack pivot gadget 实现绕过dep

    ASLR+DEP是windows平台下最为常见的两种保护手段.这两种手段使得最基础的jmp esp等手法不再适用,而单纯的堆喷也会因为堆内存不可执行而失效.那么这里就来介绍一下heap spray+s ...

  7. mvn本地库导入jar包

    导入脚本  #!/bin/sh  mvn deploy:deploy-file -DgroupId=com.xxx.xxx -DartifactId=包名 -Dversion=4.0 -Dpackag ...

  8. Zabbix监控websphere和weblogic

    本节内容 zabbix java gateway 配置和运行java gateway 配置zabbix server使用java gateway 调整java gateway的日志级别 监控weblo ...

  9. Warning -27077: The "vuser_init" section contains web function(s) when the "Simulate a new user on each iteration" Run-Time Setting is ON.

    通过LR来录制登录过程并生成脚本,设置了自动关联,并回放录制脚本,观察回放日志发现没有报error信息,说明脚本没有问题,将脚本放入Controller中设置100个用户设置运行,发现运行一段时间开始 ...

  10. Action(8):Error -27728:Step download timeout(120 seconds)has expired when downloading

    Action(8):Error -27728:Step download timeout(120 seconds)has expired when downloading   出现如下图所示对话框上的 ...