正睿集训每日总结【7.29】
作者:互联网
目录
分治
概念
分治,即分而治之,通过将问题分为两个区间,来将问题分成两个子问题。
简单题
1、求所有区间的最大值之和。
2、求所有区间的最大值与最小值之积的累加和。
3、求所有区间的 Gcd 之和。
4、求二维平面上的最近点对。
5、分治多项式乘法。
经典例题
旅行者
给定一张 N∗M 的带正权网格图,有 Q 组询问,每次询问两对点之间的最短路。( 其中 1⩽N∗M,Q⩽50000 )
连续区间
给定一个排列 p[1∼N] ,求有几个区间 [L,R] 满足 p[L∼R] 排序后是连续的。( 其中 N<=500000 )
这其实是51Nod上的原题,不多说了,直接看官方题解,很详细。
Xor最小生成树
区间统计
二分
概念
二分,其实就是对答案的一种分治。
简单题
1、分数规划问题
2、给定 N 个点 x[1∼n] ,要求将它划分成尽量少的连续区间,使得每个区间的最小圆覆盖半径 r⩽S。
3、给一个序列 a[1∼n] ,要求选出恰好 K 个不相交的区间,使得权值之和最大。
整体二分
1、有 N 个位置, M 个操作,每次操作是 1 a b c ,或者 2 a b k 。(浙江省选——K大数查询)
CDQ分治
原理
把 [L,R] 分成 [L,Mid] 和 [Mid+1,R] ,考虑左边对右边的贡献。
经典例题
1、三维偏序。
2、矩阵加、矩阵求和。
缺1背包问题
给定 N 个物品的重量 W[i] 和价值 V[i] , Q 次询问,每次询问对除了第 i 个物品以外的物品 01 背包后重量不超过 S 的最大价值。( 其中N,W,V⩽2000, Q⩽1000000 )
缺点最短路问题
给定 N 个点的带权无向图, Q 次询问,每次询问 X 到 Y 的不经过 Z 的最短路长度。( 其中 N⩽200,Q⩽1000000 )
3、解析递推式:f[n]=∑if[i]∗g[n−i] 。
点分治
图论
基础术语
出度、入度、度数、无向图、有向图、欧拉回路、哈密尔顿回路、环、简单环、连通块、强连通块、点双连通分量,边双连通分量、深搜、广搜。
BFS
1、给定一张有向图,每条边的长度为 1 ,求 1 号点到其他点的最短路长度。
2、给定一张有向图,每条边的长度为 0 或 1 ,求 1 号点到其他点的最短路长度。
3、给定一张有向图,每条边的长度为 1 或 2 ,求 1 号点到其他点的最短路长度。
Dijkstra
原理
基于贪心思想并且证明过是正确的,即当前 d[x] 最小的 x 一定已经确定了最短路。
扩展
当 d[x] 的大小在 107 内怎么做。
Bellman-Ford
1、缺点:不能适用于有负权环的图
SPFA
原理
用一个队列维护有哪些点等待更新,
每次取出一个点 x 去更新所有出边 (x,y,w) ,如果 y 被更新了就压入队列。
时间复杂度:Θ(NM)
如何卡SPFA
判断是否存在负环
Floyd
给定一张 N 个点 M 条边的正权有向图,求每两个点之间的最短路。
我们设F[K,X,Y]表示X到Y的路径中满足路径上的点的标号都不超过K的最短路径⇒F[K,X,Y]=min(F[K−1,X,Y],F[K−1,X,K]+F[K−1,K,Y])时间复杂度:Θ(N3)当然了, K 这一维其实是可以省去的,这里就不再多说了。
差分约束
本质
最短路问题约束:
对于 (x,y,w),d[y]⩽d[x]+w,最短路问题可以给出这一类不等式的最大解。
应用
给定 N,M 和 M 个三元组 (L,R,K) ,求一个 0/1 串 S ,使得 S[L∼R] 中 1 的个数至少有 K 个,求 1 最少的满足条件的 0/1 串。( 其中 N,M⩽10000 )
次短路
如何求出 1 号点到 N 号点的次短路?
我们定义:若 d[v]=d[u]+w(u,v) ,则称 (u,v) 是最短图上的边。
一条次短路一定至多经过一条非最短路图上的边。
例题
给定一张有向带正权拓扑图,求有几条 1 到 N 的路径的长度 Len⩽1 到 N 的最短路 +K 。( 其中 N,M⩽105,K⩽100,边权⩽109 )
数环
1、给定一张 N 个点 M 条边的无向图,求三元环的个数。( 其中 N,M⩽50000 )
2、给定一张 N 个点 M 条边的无向图,求四元环的个数。( 其中 N,M⩽50000 )
最小生成树
经典问题
给定一张 N 个点的带权无向图,求权值和最小的生成树。
Kruskal算法:将边按权值大小从小到大排序,之后能加就加,用并查集维护。
例题
你现在很想知道⼀个数列 A[1∼N] 是什么,但是需要花费代价去获取情报,你可以花费 Cost[L][R] 的值去得到 A[L∼R] 的和,给定 Cost ,求最少花费多少代价才能确定 A[1∼N]。( 其中 N⩽1000,Cost[L][R]⩽109 )
Prufer序列
例题
给定每个点的度数 d[i] ,求出有几颗这样的无根树。
二分图
概念
可以分成两部分,使得这两部分内部没有边的图。
一个图是二分图⇔该图没有奇环
如何判断?
1、判断一张图是否有奇环
2、判断一张图是否有偶环
字符串
KMP模式匹配
Fail[N] 表示字符串 s[1∼N] 最长的相等的前后缀。
For example, bobocowFail=[0,0,1,2,0,0,0]求一个串的最小循环节。解析
例题
标签:NNN,7.29,短路,给定,正睿,111,例题,集训,leqslant 来源: https://blog.csdn.net/weixin_44341982/article/details/97624030