最短路
最短路
gongyuandaye
不要再问我会不会写可持久化非确定状态AC自动分块维护线段平衡仙人掌优化最小费用最大流预处理混合图上莫比乌斯反演莫队带花舞蹈链并查集树状数组套主席树预处理动态DP分治FFT求多项式逆元对数函数的指数函数用可持久化并查集合并最小费用循环流上插头DP了。
展开
-
Gym 102501A Environment-Friendly Travel (二维dijkstra)
题意:平面上,要从起点到终点,中间有n个站台,站台之间有边。两点距离为欧几里得距离。每个边可以坐不同交通工具对应不同碳排放量。求起点到终点距离不超过B且碳排放量最小的路径。题解:二维dijkstra由于存在限制条件B,我们可以将d数组改为二维。d[i][j]d[i][j]d[i][j]:0点到 i 点的最小碳排放,且距离为 j 。然后正常建边跑dijkstra即可。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include&l原创 2020-09-18 21:10:54 · 341 阅读 · 0 评论 -
HDU 6805 Deliver the Cake (dijkstra+拆点)
题意:给出一张无向图,n个点,经过每个点时,都要按照当前点用左手或右手拿东西,用L、R、M(都可)表示,换一次手要x的时间,给出起点和终点,求最短时间。题解:dijkstra+拆点将每个点拆成两个,表示是这个点是左手还是右手拿的东西。比如点u是L,那么我们只能从左手拿的这个点(u << 1 | 0)出发,如果是M,那么左手(0)或者右手(1)都可以。再建一个类似超级源点和汇点即可。按照std的写了一遍,很清楚。#define _CRT_SECURE_NO_WARNINGS#inclu原创 2020-07-30 22:17:39 · 215 阅读 · 0 评论 -
HDU 6797 Tokitsukaze and Rescue (dijkstra)
题意:给出一张完全图,要求删掉k条边之后,最长的最短路。题解:dijkstra递归,每递归一次求一下最短路,并将该条最短路其中的一条删掉即可。递归的时候注意些小问题,路径的话要么开二维数组记录path,要么新建一个。还有别用全局变量…wa了好久。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring>#i原创 2020-07-28 22:44:51 · 294 阅读 · 0 评论 -
POJ 1556 The Doors (线段与线段相交+dijkstra)
题意:给出一个(0,0)(0,10)(10,0)(10,10)的正方形房子,里面有n个墙,每堵墙上有两扇门,求从(0,5)到(10,5)的最短距离。题解:线段与线段相交+dijkstra先将所有点存起来,再将墙(线段)存起来。暴力枚举两点,看是否与已存线段相交,若不相交,相连,然后跑最短路。注意数据范围。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<strin原创 2020-06-24 19:17:33 · 144 阅读 · 0 评论 -
POJ 2112 Optimal Milking (floyd+二分+二分图多重匹配)
题意:k个挤奶器,c头奶牛,每个挤奶器可供m头奶牛使用,k+c的矩阵给出挤奶器和奶牛到彼此的距离,前k行是挤奶器,k+1到k+c行是奶牛。求在保证每头牛都能挤到奶的情况下,离得最远的牛的最小距离。题解:floyd+二分+二分图多重匹配首先得用floyd求一下最短路,保证奶牛距离挤奶器保存的是最短距离。奶牛只能去一个挤奶器,每个挤奶器能让多个奶牛挤奶,二分图多重匹配问题。接下来我们要限制最远的牛的最小距离,求最大值的最小值,我们用二分,这里限制距离,将二分距离内的奶牛与挤奶器相连。吐了,wa了半天居然原创 2020-06-21 17:07:24 · 159 阅读 · 0 评论 -
HDU 3416 Marriage Match IV (dijkstra+最大流)
题意:给出n个点,m条边,给出起点、终点,求不重叠的最短路有多少条(点可以重叠)。题解:dijkstra+最大流要求最短路条数,肯定得先把所有最短路找出来:d1[u[i]] + w[i] + d2[v[i]] == d1[end],边iii就是所有最短路中的一条。我们将找出的边iii加入最大流的图中,跑出的最大流就是最短路条数。一开始t了,看discuss原来是sap的数组开小了,因为题目有重边。#define _CRT_SECURE_NO_WARNINGS#include<iostre原创 2020-06-17 21:20:14 · 130 阅读 · 0 评论 -
HDU 1874 畅通工程续 (dijkstra)
题意:给出起点、终点,求最短路。题解:dijkstra放在堆这个专题大概是最小堆优化吧。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<queue>#include<stack>#include<原创 2020-06-11 23:31:19 · 122 阅读 · 0 评论