图论
文章平均质量分 73
KKKZOZ
This is Kelicopter speaking!
展开
-
Dijkstra
Dijkstra 算法 (模板) 图论中基本的最短路径算法之一 传送门: Floyd算法:就是这里哈哈哈 基本思想:其实我觉得基本思路和Floyd差不多,利用松弛操作 比如:a--->b,从a到b,在没有其他路的情况下直接走当然最短,所以要使其更短,就只有引出第3个点,让a--->c--->b比a--->b短 用代码解释这句话就是 if(dis[v]>dis[u]+a[u][v])原创 2018-02-02 21:10:02 · 247 阅读 · 0 评论 -
Dijkstra(堆优化)
Dijkstra 算法 (模板)【堆优化】 传送门: Dijkstra:建议先掌握原始版本 基本思路:用一个优先队列,priority queue来保存点到点之间的距离,优先队列自动把队列里的数据排序(这里需要手动写一个bool型函数来定义为由大到小排序),枚举各种可能的走法,包括当某两点之间的路线为无限大时,(所以可以自动处理重边,而原始版本的不能)最后把最小的方案(即dis)输出给d数组原创 2018-02-03 23:25:58 · 502 阅读 · 0 评论 -
Floyd算法
Floyd 算法(模板) 第一次写博客,就把我的第一篇博客贡献给图论吧哈哈哈哈 今天正在寒假集训,正好讲了几种最短路径算法,今天晚上我就归纳一下并贴出模板,如果有时间我会贴出题的 Floyd 该算法由Robert W.Floyd于1962年发表在Communications of the ACM上。 正在让代码更具有可读性…… #include #include #defi原创 2018-02-02 20:32:10 · 217 阅读 · 0 评论 -
SPFA
SPFA算法(模板) 昨天才打了dijkstra堆优化的模板,今天再打这个……发现两个算法好接近啊,特别特别像 基本思路:一开始时将源点加队,每次从队列中取出一个元素,并对所有与他相邻的点进行松弛,若某个相邻的点松弛成功,则将其入队。 直到队列为空时算法结束。(减少了不必要的计算) 传送门 Dijkstra(堆优化):点这里哈哈哈 OK,代码上有详细解释,上代码: #include原创 2018-02-04 23:08:17 · 675 阅读 · 0 评论 -
洛谷【P1346】电车
先贴上链接:点击打开 题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目原创 2018-02-06 19:46:37 · 206 阅读 · 0 评论 -
Kruskal
最小生成树(模板)这里只介绍Kruskal算法,在NOIP考试中,还未成出现prime/Kruskal算法卡其中一种的情况Kruskal算法基本思路:首先把所有的边按照权值先从小到大排列,接着按照顺序选取每一条边,如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。算法实现:用一个结构体数组e来保存信息,再用sort排序,这里需要自己写一个函数cmp来定义排序标...原创 2018-02-07 22:57:22 · 178 阅读 · 0 评论 -
拓扑排序(模板)
原创 2018-02-07 22:59:42 · 294 阅读 · 2 评论