收藏本页
联系我们
论坛帮助

>> 关于竞赛设计的各种算法,欢迎大家到此讨论
趣题之家信息学竞赛算法艺术 → 迪杰斯特拉算法

  发表一个新帖子  发起一个新投票  回复本主题 您是本帖的第 4481 个阅读者
  标题:迪杰斯特拉算法 树形   打印   收藏   推荐  
     帅哥哟,离线,有人找我吗?
    
    
    头衔:ENDLESS
    等级:版主
    文章:36
    积分:116
    注册:2004-11-24
给remlostime发送一个短消息 把remlostime加入好友 查看remlostime的个人资料 搜索remlostime在的所有贴子 点击这里发送电邮给remlostime 引用回复这个贴子 回复这个贴子 楼主
发贴心情 迪杰斯特拉算法
迪杰斯特拉算法



本节将讨论带权有向图,并称路径上的第一个顶点为源点(soruse, 最后一个顶点为终点(destination)。下面讲一种最常见的最短路径问题----从某个源点到其余各顶点的最短路径。



    例:


1

4

2

2

2

3

3

3







program dijkstra;


  const max=6;


of integer=((0,  3,  2,  100,100,100),


                                            (3,  100,100,2,  3,  100),


                                            (2,  100,100,4,  100,3),


                                            (100,2,  4,  100,100,2),


                                            (100,3,  100,100,100,1),


                                            (100,100,3,  2,  1,  100));


of integer;  存点1到各点的最短路径长度


of set of 1..max;  存点1到各点的最短路径集合


       i,j,k,l,m,n:integer;


       q:set of 1..max;  已扩展的点的集合


  begin


    l:=100;  l:存当前最短的边,初值为100


    for i:=1 to max do  初始化,存与点1相连的各点到点1的当前最短路径长度和路


      begin             径集合


        ss:=s[1,i];if ss<l then p:=[1]+ else p:=[]


      end;


; 已扩展点的集合初值


    for k:=1 to max -1 do  循环max-1次,分别求点1到其余各点的最短路径


      begin


        l:=100;j:=1;    j:当前要扩展的点(初值为1)


        for i:=1 to max do  找当前要扩展的点j(边长最短的)


          if not(i in q) and (ss<l) then begin j:=i;l:=ss end;


;  扩展当前第j点


        for i:=1 to max do 修正点1到各点的最短跟距离


<ss) then


                       begin ss:=ss[j]+s[j,i];p:=p[j]+ end


      end;


    for i:=2 to max do  输出最短路径和距离


      begin


        for j:=1 to max do if j in p then write(j:2);


        writeln('s=':5,ss)


      end;


end.


发贴IP已设置保密 2005-03-15 23:07
       
     帅哥哟,离线,有人找我吗?
    
    
    头衔:大菜鸟
    等级:版主
    威望:1
    文章:117
    积分:315
    注册:2004-10-19
 QQ 给licong发送一个短消息 把licong加入好友 查看licong的个人资料 搜索licong在的所有贴子 点击这里发送电邮给licong 引用回复这个贴子 回复这个贴子 2
发贴心情
我更喜欢Floyed 省事

终极菜鸟复活~~~~~~
发贴IP已设置保密 2005-03-21 13:40
       
     帅哥哟,离线,有人找我吗?
    
    
    头衔:ENDLESS
    等级:版主
    文章:36
    积分:116
    注册:2004-11-24
给remlostime发送一个短消息 把remlostime加入好友 查看remlostime的个人资料 搜索remlostime在的所有贴子 点击这里发送电邮给remlostime 引用回复这个贴子 回复这个贴子 3
发贴心情
时间不够就要用,象noip应该可用FLOYED代替它
发贴IP已设置保密 2005-03-21 14:59
       
     帅哥哟,离线,有人找我吗?
    
    
    头衔:好学生
    等级:版主
    文章:161
    积分:332
    注册:2004-11-06
 QQ 给gdgzgq发送一个短消息 把gdgzgq加入好友 查看gdgzgq的个人资料 搜索gdgzgq在的所有贴子 点击这里发送电邮给gdgzgq 引用回复这个贴子 回复这个贴子 4
发贴心情
恩,NOIP不会考太难的图论问题。

趣题之家欢迎你!
发贴IP已设置保密 2005-03-22 21:27
       
     帅哥哟,离线,有人找我吗?
    
    
    等级:新手上路
    文章:11
    积分:83
    注册:2005-02-18
给HenryErnst发送一个短消息 把HenryErnst加入好友 查看HenryErnst的个人资料 搜索HenryErnst在的所有贴子 点击这里发送电邮给HenryErnst 引用回复这个贴子 回复这个贴子 5
发贴心情
这还叫难??????那什么叫简单?
发贴IP已设置保密 2005-03-28 11:56
       
     帅哥哟,离线,有人找我吗?
    
    
    等级:管理员
    威望:50
    文章:291
    积分:669
    注册:2003-05-18
 QQ 给趣题之主发送一个短消息 把趣题之主加入好友 查看趣题之主的个人资料 搜索趣题之主在的所有贴子 点击这里发送电邮给趣题之主 访问趣题之主的主页引用回复这个贴子 回复这个贴子 6
发贴心情
确实,dijkstra是很基础的算法,NOIP中应该不用堆来优化,那就更基础了……
发贴IP已设置保密 2005-04-02 19:30
       
     帅哥哟,离线,有人找我吗?
    
    
    等级:新手上路
    文章:15
    积分:65
    注册:2005-07-15
给nowords发送一个短消息 把nowords加入好友 查看nowords的个人资料 搜索nowords在的所有贴子 点击这里发送电邮给nowords 引用回复这个贴子 回复这个贴子 7
发贴心情
DIJKSTRA是图论中最基础的算法之一,肯定是NOIP大纲要求
发贴IP已设置保密 2005-07-15 11:07
       

 7   7   1/1页      1    


网上贸易 创造奇迹! 阿里巴巴 Alibaba

Powered By Dvbbs Version 7.1.0
Copyright ©2003 - 2006 QTHome.Org
页面执行时间 00.15625 秒, 3 次数据查询
本论坛采用阿里巴巴支付宝网上银行支付系统,安全、可靠、便捷