![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最短路
Let_life_stop
和强者对战才是提升自己最快的方法。
展开
-
Dijkstra算法
题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2143.html 直接从代码开始讲:#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3fstruct node{ i...原创 2018-04-19 11:24:40 · 126 阅读 · 0 评论 -
G - Pandaland HDU - 6005 (找最小环)
题目链接:https://cn.vjudge.net/contest/275153#problem/G具体思路: 我们可以按照暴力的方法进行做 , 我们可以枚举每一条边,将这条边的权值设置为inf,然后再去跑最短路,起点是这条边的起点,如果说这条边的另一个点能够到达,并且总的路径花费小于inf,这就证明了有回路,然后再去从这些回路里面去找最小花费就可以了AC代码:#include...原创 2018-12-14 17:16:03 · 251 阅读 · 0 评论 -
判断最小生成树是否为一(krustra)
题目链接:https://vjudge.net/contest/66965#problem/K具体思路:首先跑一遍最短路算法,然后将使用到的边标记一下,同时使用一个数组记录每一个权值出现的次数,如果出现过的权值超过一次,那么每一次标记一条标记过的边,再去跑最短路算法,如果去除这条边之后的权值和未未去除的时候的权值相同,那么这个最短生成树就不是唯一的,否则就是唯一的。AC代码:#i...原创 2018-10-07 15:38:43 · 231 阅读 · 0 评论 -
prim算法记录路径
题目链接:https://vjudge.net/contest/66965#problem/H代码:#include<iostream>#include<string>#include<cstring>#include<iomanip>#include<cmath>#include<stack>#incl...原创 2018-10-06 16:05:54 · 804 阅读 · 0 评论 -
spfa求图的最大流
题目链接:https://vjudge.net/contest/255738#problem/BAC代码:#include <iostream>#include<vector>#include<string>#include<cstring>#include<queue>#include<stdio.h>...原创 2018-09-22 09:40:50 · 219 阅读 · 0 评论 -
多源点到单点最短路(这个题把我目前会的最短路的优化全给整上了 :)
题目链接:https://vjudge.net/contest/66569#problem/J题目大意: 给你站点n和人数p,让你求p个人从第一个点到其余点的花费总额和回来的路程的总额,求最小花费。具体思路:建两个图,一个正向求去的花费最小,一个反向求回来的花费最小。一开始用vector和spfa,tle。后来改成vector和迪杰斯特拉的堆优化,tle。最后,迪杰斯特拉的堆优化加上前...原创 2018-09-20 21:05:32 · 609 阅读 · 0 评论 -
bellman-ford算法(判断有没有负环)
#include <iostream>#include <vector>#include<string>#include<cstring>using namespace std;# define ll long long# define maxn 1000+10# define inf 0x3f3f3f3fint n,m,t;do...原创 2018-09-20 17:12:05 · 805 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 L题(分层图,堆优化)
题目链接:https://nanti.jisuanke.com/t/31001超时代码:#include<bits/stdc++.h>using namespace std;# define maxn 10000000+10# define inf 0x3f3f3f3fint n,m,k;int num;int head[maxn];int dis[maxn...原创 2018-09-02 21:38:35 · 293 阅读 · 0 评论 -
最小费用流(km的另一种使用思路)
题目链接:https://cn.vjudge.net/contest/242366#problem/L大体意思就是:h代表旅馆,m代表人,人每走动一个需要一个金币,行动只有两个方向,水平或者竖直。问你最终让所有人都能到达旅馆并且花的总费用最少。具体思路:一开始我是按照km的初级使用进行敲的,结果发现第二组样例过不了,然后km也打的没问题,看了网上的代码,才发现自己的思路错了。这个题的目的是...原创 2018-08-17 21:13:07 · 679 阅读 · 0 评论 -
I - Interesting Calculator (bfs使用优先队列求步数最小或者花费最小)
题目链接:https://cn.vjudge.net/contest/245287#problem/I代码:使用普通的队列和优先队列相比,优先队列能更快地找到目的变量。#include<iostream>#include<string>#include<cstring>#include<iomanip>#include<s...原创 2018-08-09 15:12:26 · 181 阅读 · 0 评论 -
闭包传递(floyed)
题目链接:https://cn.vjudge.net/contest/66569#problem/H题目大意: n代表母牛的个数,m代表给定的信息的组数。每一组数包括a,b. 代表b崇拜a(突然发现可以用tarjan算法做)。然后问你最终有多少母牛的地位是确定的。代码:#include<iostream>#include<string>#include&...原创 2018-08-01 10:34:20 · 275 阅读 · 0 评论 -
prim算法,克鲁斯卡尔算法---最小生成树
最小生成树的一个作用,就是求最小花费。要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低。这就需要找到带权的最小生成树。主要思路:贪心,假设一共有五个点,按道理来讲,应该是先找到图中最小权值的两个点没然后对剩余的点进行遍历。但是也可以任意指定一个点。可以任意指定的原因就...原创 2018-07-31 17:24:32 · 1070 阅读 · 0 评论 -
B - Frogger 最短路变形('最长路'求'最短路','最短路'求'最长路')
http://poj.org/problem?id=2253题目大意:有一只可怜没人爱的小青蛙,打算去找他的女神青蛙姐姐,但是池塘水路不能走,所以只能通过蹦跶的形式到达目的地,问你从小青蛙到青蛙姐姐的路程中,有多条路径,问你 每一条 路径中 最大值 中的最小值。打个比方,假设 1-》5有两条路径,第一条路径的最大值为2 ,第二条路径的最大值为3,那麽结果就是 2,题目真的绕。思路:基本...原创 2018-07-27 21:03:05 · 291 阅读 · 0 评论 -
spfa算法----最短路
题目链接:https://cn.vjudge.net/contest/66569#problem/A 代码:vis数组代表是否还有用,首先初始化为0,首先第一个点入队列,标记为1,然后刚入队列的时候,取消标记,如果经过判断之后还有用,就再标记。然后再就是出发点的路径,因为是从起始点开始走,所以从1-》1这个路径的权值就应该初始化为0.然后再就是对取最短路的判断,如果某一路径上找到了权重...原创 2018-07-26 21:38:24 · 354 阅读 · 0 评论 -
F. Make It Connected(krustra+)
题目链接:http://codeforces.com/contest/1095/problem/F 题目大意:首先给你n个点,然后给你每个点的权值,再给你m条边,这些边可以选也可以不选,然后问你要使这个加边构成的图联通的最小花费。 具体思路:我们可以先找出权值最小的点,然后别的点都向向这个点连一条边,这是当前使得图联通的最小构图的方法,然后再看一下题目给定的点加上,注意题目给定的...原创 2018-12-28 20:01:48 · 392 阅读 · 0 评论