关闭

Hdu 2544 最短路

532人阅读 评论(0) 收藏 举报
分类:

Dij   、  Floyd 

还是联系快速敲模板



Dij代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define INF 0x3f3f3f3;
int map[110][110],dis[110],visited[110];

void Dijkstra(int n,int x)
{
    int i,p,j,min;
    for (i=1;i<=n;i++)
    {
        dis[i]=map[1][i];
        visited[i]=0;
    }
    visited[x]=1;
    for (i=1;i<=n;i++)
    {
        min=INF;
        for (j=1;j<=n;j++)
        {
            if(!visited[j] && dis[j]<min)
            {
                p=j;
                min=dis[j];
            }
        }
        visited[p]=1;
        for (j=1;j<=n;j++)
        {
            if(!visited[j] && dis[p]+map[p][j]<dis[j])
            {
                    dis[j]=dis[p]+map[p][j];
            }
        }
    }
    
}

int main()
{
    int n,m,i,j,a,b,t;
    while(scanf("%d%d",&n,&m)!=EOF,n+m)
    {
        for (i=1;i<=n;i++)
        {
            for (j=1;j<=n;j++)
            {
                map[i][j]=INF;
            }
        }
        for(i=1;i<=m;i++)
        {
            scanf("%d%d%d",&a,&b,&t);
            map[a][b]=map[b][a]=t;
        }
        Dijkstra(n,1);
        printf("%d\n",dis[n]);
    }
    return 0;
}



Floyd代码:

#include <iostream>
#include <cstdio>
using namespace std;
const int INF=0x3f3f3f3f;
int dis[110][110];
int main()
{
    int i,j,k,n,m,p,q,s;
    while(scanf("%d%d",&n,&m)!=EOF,n+m)
    {
        for (i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                dis[i][j]=INF;
            }
        }
        for (i=0;i<m;i++)
        {
            scanf("%d%d%d",&p,&q,&s);
            dis[p][q]=dis[q][p]=s;      
        }
        for (k=1;k<=n;k++)
        {
            for (i=1;i<=n;i++)
            {
                for (j=1;j<=n;j++)
                {
                    if (dis[i][j]>dis[i][k]+dis[k][j])
                    {
                        dis[i][j]=dis[i][k]+dis[k][j];
                    }
                }
            }
        }
        printf("%d\n",dis[1][n]);            
    }
    return 0;
}


0
0
查看评论

hdu2544 最短路(三种基本最短路算法)

http://acm.hdu.edu.cn/showproblem.php?pid=2544 题意:中文题求最短路。无负值。 思路:主要是用来熟悉三种基本最短路算法。先来整体教程。总体而言,三种算法都是对点的不断松弛而找出最短路,而且最短路途中的任何节点都满足其为当前最短路。 1、...
  • Flynn_curry
  • Flynn_curry
  • 2016-01-19 16:24
  • 433

ACM-最短路(SPFA,Dijkstra,Floyd)之最短路——hdu2544

ACM 最短路(SPFA,Dijkstra,Floyd) 最短路 hdu2544
  • lx417147512
  • lx417147512
  • 2014-05-27 11:59
  • 3492

hdu 2544 最短路(Dijkstra 邻接表+优先队列)

题目地址 http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768...
  • sinat_30126425
  • sinat_30126425
  • 2015-09-15 21:18
  • 434

HDU-2544 最短路【最短路】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 最近复习了最短路径的算法,就写了4个版本的测试。正好是模板题,就果断A之。。。 Dijkstar版本: #include #include #include #include #in...
  • niushuai666
  • niushuai666
  • 2012-02-25 09:31
  • 2333

[HDU 2544] 最短路 · 堆优化dijkstra

模板题用来练手。 现在来说一般的图论题目都很难用普通dijkstra过掉,而SPFA又很不稳定,还是学了一下国际公认的堆优化dijkstra。 简单来说,堆优化dij就是把for循环找最小的d[i]那维用堆来做,将O(n)降成了O(logn)。 关于一个小问题见程序注释 【据说priorit...
  • ycdfhhc
  • ycdfhhc
  • 2015-09-14 22:57
  • 1054

hdu oj 2544 最短路(最短路径)

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 31874  &#...
  • u014253173
  • u014253173
  • 2014-08-10 15:16
  • 1852

最短路&&优先队列优化->HDU2544

最短路&&优先队列优化->HDU2544Dijkstra算法思想:    (1)在任意时刻,我们都要得到从源点到所有顶点的估算距离,并维持一个顶点集合S,若顶点v在S中,则说明从源点到v的最短路径已知;    (2)在每一次将不在S中的顶点v加到S中去时,总是选择...
  • SelinaFelton
  • SelinaFelton
  • 2016-08-09 00:43
  • 223

hdu 2544 最短路 spfa模板题

题意:给出m条边,求路口1到n的最短路。 直接上模板。 #include #include #include #include #define INF 0x7ffffff #define N 110 using namespace std; int d[N],v[N],q[N],n,m,m...
  • zchahaha
  • zchahaha
  • 2016-03-29 21:55
  • 662

2544 最短路【dijkstra】

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 42851  &#...
  • liuke19950717
  • liuke19950717
  • 2015-08-18 17:40
  • 309

HDU 2544 最短路【Dijkstra算法、spfa算法】

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 50795  ...
  • hurmishine
  • hurmishine
  • 2016-05-07 22:09
  • 1582
    个人资料
    • 访问:256102次
    • 积分:4192
    • 等级:
    • 排名:第8675名
    • 原创:195篇
    • 转载:16篇
    • 译文:0篇
    • 评论:41条
    最新评论