CSP-S Day 4

Day3 博客 鸽了

今天讲图论奥 

强连通 弱连通 强者 弱鸡

dij spfa floyed 

求一条1到n的边权递增的最短路

考虑更改dis 数组的含义 dis 表示从1到i边权递增的最短路 

首先考虑对所有的边 从小到大排序 然后考虑 一条一条加入图中 

对于加入的边 我们判断一下 是否可用即可 

考虑 算法的正确性 如果某条边是 但某段最短路上的 最后一条边 因为他是最大的 所以在他加进来之前 路径在他之前的边

都被加进来过了 所以路径是合法路径 但是这一定是存在 对于边权相同的处理 注意细节就好;


有n个点 m条边 还有k条铁路 k条铁路都和1号点相连 求最多删掉多少条铁路 st其他点到1号点的最短路 不变

先咕咕咕


 有n个点 m条边 每个点具有一个点权ai 定义 $d_{i j}$ 表示 任意两点之间的最短路 

对于每一个i 求一个 满足 $min(2*d_{i,j}+a_j)$ 的 j

首先我们知道这个*2是没有意义的 我们考虑 对所有的边权*2 那么$a_j$ 我们考虑 怎么解决呢

我们可以改一下这个式子 考虑 $min(d'_{j,i}+d_{0,j})$  就是多建一个超级源点 考虑 此时转换成一个单源最短路的问题了 


 经典问题 多起点最短路

这种题目的一般套路是我们虚设一个源点 然后源点连向关键点 边权为0 然后从源点出发 求到其他点的最短路  就是这k个点

出发到某个点的 最短路。

题目 :对于一个N个点 M条边无向带劝图 其实有K个关键点  求这K个关键点两两之间的最短路  2<=K<=N,M<=1e5

考虑进行转化 如果给定一个二分图 假设集合S 和T 求从S到T的最短路

那么 这就对应上面的经典问题 建一个超级源点即可 

那么考虑 这个问题 我们进行多少次的 划分 才能把 当前问题转化成 我们擅长的模型呢

就是任意两个点对都至少有一次被划分到 两个不同的集合内?

我们存在一个简单的想法 按照奇偶编号 这样我们可以求出所有奇数点到偶数点的最短路

那么考虑一个事情 如果两端都是奇数点 或者都是 偶数点呢 

我们当然可以考虑 他们/2 之后的奇偶

所以对于两个关键点 u v 他们对应的二进制位一定有一位不同 那么u v 至少会在一次划分中 被划分到不同的集合内

所以他们的最短路一定是会被考虑到 所以 我们对于每一个二进制位 将等于0 和 等于1 的都 求一次最短路

所以 任意两个关键点的最短路一定会被考虑到 所以整体复杂度是 (Mlog2N);

题目:给定一个N*M的网格图 他们可能有一些是障碍 一些是网格 或者A的基地 B的基地 C的基地

现在A B C 会随机选择一个自己的基地作为出发点 然后到达一个空地回合 这个空地一定是到到达他们三个最短距离之和最短

的点 求他们回合的路径长度的期望大小 N,M<=150 A的基地 B的基地<=50

暴力枚举AB的起点 求期望

但是我们注意到 A B基地的数量是较少的 所以我们当然是考虑 暴力枚举 AB的基地的 作为起点 这样我们知道了 每个空地到A

B的最短路 这样我们 对于每一个可能的C的基地 我们都要选出一个到达A B 的距离之和 加上到自己的最短的点的最短路

考虑这是一个多源点多汇点的最短路 

那么 我们可以建一个 超级源 向每个空地练一条边权为 到A +到B距离的点 此时对于每一个C的基地 那么 $dis_C$

就是从A B C回合的最短距离 其实网格图 我们更可以改成BFS 所以复杂度是(A基地的数量*B基地的数量*N*M)

题意:给出一个N个点M条边的图 对于任意点对(u,v) 要求出来 其所有的最短路 覆盖的路径数量 N<=500

我们显然可以先跑一个多源最短路 求出任意两点之间的最短路 然后存在一个 n^4 的暴力 

每次枚举点对 然后枚举 边 根据 dis 判断这条边在不在最短路上即可 

考虑 优化 floyed不能省 然后考虑 省掉枚举边的复杂度 

那么根据 floyed 的特点 我们显然知道 对于s 到 t 的最短路 存在一个中间点 p 如果 s t 的距离是 p转移而来的 

那么 所以以p 结尾的 在s->p 的最短路上的边 我们都可以累加上 显然这样是不重复的 

那么 如果p 不是中间点 那么 显然 以p 结尾的所有边都不会在s t 的最短路上


生成树问题

对于Kruskal  存在一个比较经典问题 对于每个边权是一个关于时间T的二次函数 让你求某个时间区间的最短路 或者 整个时间轴的最小生成树

划分k个集合 使得 跨集合的点的最短路尽可能大

实际上我们是在求 跨集合的边的最小值 我们使用Kruskal 将原图合并为剩下K个集合 再次添加进来的边就是答案;

先写道这里8 回来补 我要去写题了 宝儿~/cy

猜你喜欢

转载自www.cnblogs.com/Tyouchie/p/11621398.html