图论之dij
来源:互联网 发布:软件版权局 编辑:程序博客网 时间:2024/06/12 10:38
- 第一次写了一个关于图论的问题,即dij算法,有点想法,有什么错误之处,望各位游客指出,感激不尽
- dij算法,我认为要弄懂几个变量,(注:这些变量是我的代码风格)
- pic[i][j],表示i点到j点的距离
- dis【i】,表示i点到源点的最短距离
- vis【i】,为标记,0表示在U集合,1表示在S集合
for(i=1;i<=n;i++) for(j=1;j<=n;j++) { if(i==j) pic[i][j]=0;//pic的意思是i点到j点的距离 else pic[i][j]=pic[j][i]=inf; }
dij核心算法:
void dij(int st,int n)//st表示源点,n表示终点{ memset(vis,0,sizeof(vis));//标记初始化,0表示在U集合里,1表示在S集合里 for(i=1;i<=n;i++) dis[i]=inf;//dis表示i点到源点的最小距离,先初始化为最大 dis[st]=0;//表示源点,此题表示商店位置 for(i=1;i<=n;i++) { int mm=inf; for(j=1;j<=n;j++)//找出U集合中离源点最近的点 { if(vis[j]==0&&mm>dis[j]) { mm=dis[j]; pos=j; } } vis[pos]=1;//将找到的点放入到S集合中 for(j=1;j<=n;j++)//用找到的点更新与之有路的点到源点的最小距离 if(vis[j]==0&&dis[j]>dis[pos]+pic[pos][j]) dis[j]=dis[pos]+pic[pos][j]; }
} 注意:用邻接矩阵存图,有一个弊端,他不能更新重边,比如两个点之间有两条线,距离不等,他就要炸,用邻接表就可以避免这种情况,邻接表是会更新重边的
0 0
- 图论之dij
- Dij
- 【DayDayUp】【算法_图_最短路_之二_SPFA最劣、Dij堆优化&Johnson(结点对最短路)】(待续)
- CSU 1808 地铁【思维建图+最短路Dij+Heap】
- 五月赛- ACMER的出行计划(分层图,dij)
- poj3662 dij
- dij(priority_queue)
- dij算法
- (hdoj)(图论加强)hdoj 1874(由此可以证明我的dij是可以不以第一个点当起点的)
- 【基础练习】【最短路堆优dij】tyvj1376 魔域之战题解
- Hrbust 1355 Leyni,罗莉和XianGe (最短路 思维建图,dij优化)
- bzoj 3073: [Pa2011]Journeys 线段树优化建图+堆优化dij
- HDU 2680 有点坑的稠密图最短路(dij各版本)
- bzoj1579 [Usaco2009 Feb]Revamping Trails 道路升级 分层图dij+heap
- Codeforces Round #420 (Div. 2) 821D Okabe and City 思维建图+dij
- 【BZOJ 1001:[BeiJing2006]狼抓兔子 最小割转对偶图堆优化dij
- poj 1797 dij变形
- dij+优先队列POJ_3662
- js try{}catch(e){}的理解
- 使用剪切板在Activity中传值示例代码
- SSD固态硬盘才装上确找不到盘怎么办-原来要初始化
- JDBC基础实例
- 动态规划 UVA 12563 Jin Ge Jin Qu hao
- 图论之dij
- 动态创建Sprite
- JavaScript HTML DOM 事件
- URL中嵌套用户名:密码的问题处理(base64加密的方式)
- 第6课:零基础实战Scala集合操作及Spark源码解析
- Educational Codeforces Round 2D. Area of Two Circles' Intersection
- Android开发笔记之开源框架收集
- 折半查找和顺序查找
- UPNP自动端口映射的实现与路由器UPNP相关资料