其他分享
首页 > 其他分享> > 正睿集训每日总结【7.29】

正睿集训每日总结【7.29】

作者:互联网

目录


分治

概念

分治,即分而治之,通过将问题分为两个区间,来将问题分成两个子问题。

简单题

1、求所有区间的最大值之和
2、求所有区间的最大值与最小值之积的累加和
3、求所有区间的 Gcd\mathscr{Gcd}Gcd 之和
4、求二维平面上的最近点对
5、分治多项式乘法

经典例题

旅行者

给定一张 NMN*MN∗M 的带正权网格图,有 QQQ 组询问,每次询问两对点之间的最短路。( 其中 1NM,Q500001\leqslant N*M,Q\leqslant 500001⩽N∗M,Q⩽50000 )

连续区间

给定一个排列 p[1N]p[1\sim N]p[1∼N] ,求有几个区间 [L,R][L,R][L,R] 满足 p[LR]p[L\sim R]p[L∼R] 排序后是连续的。( 其中 N&lt;=500000N&lt;=500000N<=500000 )

这其实是51Nod上的原题,不多说了,直接看官方题解,很详细。
在这里插入图片描述

Xor最小生成树

区间统计

二分

概念

二分,其实就是对答案的一种分治。

简单题

1、分数规划问题
2、给定 NNN 个点 x[1n]x[1\sim n]x[1∼n] ,要求将它划分成尽量少的连续区间,使得每个区间的最小圆覆盖半径 rSr\leqslant Sr⩽S
3、给一个序列 a[1n]a[1\sim n]a[1∼n] ,要求选出恰好 KKK 个不相交的区间,使得权值之和最大

整体二分

1、NNN 个位置, MMM 个操作,每次操作是 1   a b c1\ \ \ a\ b\ c1   a b c ,或者 2   a b k2\ \ \ a\ b\ k2   a b k 。(浙江省选——K大数查询)

CDQ分治

原理

[L,R][{L,R}][L,R] 分成 [L,Mid][{L,Mid}][L,Mid] 和 [Mid+1,R][{Mid+1,R}][Mid+1,R] ,考虑左边对右边的贡献

经典例题

1、三维偏序
2、矩阵加、矩阵求和

缺1背包问题

给定 NNN 个物品的重量 W[i]W[i]W[i] 和价值 V[i]V[i]V[i] , QQQ 次询问,每次询问对除了第 iii 个物品以外的物品 010101 背包后重量不超过 SSS 的最大价值。( 其中N,W,V2000N,W,V\leqslant 2000N,W,V⩽2000, Q1000000Q\leqslant 1000000Q⩽1000000 )

缺点最短路问题

给定 NNN 个点的带权无向图, QQQ 次询问,每次询问 XXX 到 YYY 的不经过 ZZZ 的最短路长度。( 其中 N200Q1000000N\leqslant 200,Q\leqslant 1000000N⩽200,Q⩽1000000 )
3、解析递推式:f[n]=if[i]g[ni]f[n]=\sum_i f[i]*g[n-i]f[n]=∑i​f[i]∗g[n−i] 。

点分治

图论

基础术语

出度、入度、度数、无向图、有向图、欧拉回路、哈密尔顿回路、环、简单环、连通块、强连通块、点双连通分量,边双连通分量、深搜、广搜。

BFS

1、给定一张有向图,每条边的长度为 111 ,求 111 号点到其他点的最短路长度
2、给定一张有向图,每条边的长度为 000 或 111 ,求 111 号点到其他点的最短路长度
3、给定一张有向图,每条边的长度为 111 或 222 ,求 111 号点到其他点的最短路长度

Dijkstra

原理

基于贪心思想并且证明过是正确的,即当前 d[x]d[x]d[x] 最小的 xxx 一定已经确定了最短路

扩展

d[x]d[x]d[x] 的大小在 10710^7107 内怎么做。

Bellman-Ford

1、缺点:不能适用于有负权环的图

SPFA

原理

用一个队列维护有哪些点等待更新
每次取出一个点 xxx 去更新所有出边 (x,y,w)(x,y,w)(x,y,w) ,如果 yyy 被更新了就压入队列
时间复杂度:Θ(NM)\Theta(NM)Θ(NM)

如何卡SPFA

判断是否存在负环

Floyd

给定一张 NNN 个点 MMM 条边的正权有向图,求每两个点之间的最短路
F[K,X,Y]XYKF[K,X,Y]=min(F[K1,X,Y],F[K1,X,K]+F[K1,K,Y])Θ(N3)\begin{aligned} &amp;我们设F[K,X,Y]表示X到Y的路径中\\ &amp;满足路径上的点的标号都不超过K的最短路径\\ &amp;\Rightarrow F[K,X,Y]=min(F[K-1,X,Y],F[K-1,X,K]+F[K-1,K,Y])\\ &amp;时间复杂度:\Theta(N^3) \end{aligned} ​我们设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)​当然了, KKK 这一维其实是可以省去的,这里就不再多说了。

差分约束

本质

最短路问题约束:
对于 (x,y,w),d[y]d[x]+w(x,y,w),d[y]\leqslant d[x]+w(x,y,w),d[y]⩽d[x]+w,最短路问题可以给出这一类不等式的最大解。

应用

给定 N,MN,MN,M 和 MMM 个三元组 (L,R,K)(L,R,K)(L,R,K) ,求一个 0/10/10/1 串 SSS ,使得 S[LR]S[L\sim R]S[L∼R] 中 111 的个数至少有 KKK 个,求 111 最少的满足条件的 0/10/10/1 串。( 其中 N,M10000N,M\leqslant 10000N,M⩽10000 )

次短路

如何求出 111 号点到 NNN 号点的次短路?
我们定义:若 d[v]=d[u]+w(u,v)d[v]=d[u]+w(u,v)d[v]=d[u]+w(u,v) ,则称 (u,v)(u,v)(u,v) 是最短图上的边。
一条次短路一定至多经过一条非最短路图上的边。

例题

给定一张有向带正权拓扑图,求有几条 111 到 NNN 的路径的长度 Len1\mathfrak{Len}\leqslant 1Len⩽1 到 NNN 的最短路 +K+K+K 。( 其中 N,M105,K100,109N,M\leqslant 10^5,K\leqslant 100,边权\leqslant 10^9N,M⩽105,K⩽100,边权⩽109 )

数环

1、给定一张 NNN 个点 MMM 条边的无向图,求三元环的个数。( 其中 N,M50000N,M\leqslant 50000N,M⩽50000 )
2、给定一张 NNN 个点 MMM 条边的无向图,求四元环的个数。( 其中 N,M50000N,M\leqslant 50000N,M⩽50000 )

最小生成树

经典问题

给定一张 NNN 个点的带权无向图,求权值和最小的生成树
Kruskal\mathfrak{Kruskal}算法Kruskal算法:将边按权值大小从小到大排序,之后能加就加,用并查集维护。

例题

你现在很想知道⼀个数列 A[1N]A[1\sim N]A[1∼N] 是什么,但是需要花费代价去获取情报,你可以花费 Cost[L][R]Cost[L][R]Cost[L][R] 的值去得到 A[LR]A[L\sim R]A[L∼R] 的和,给定 CostCostCost ,求最少花费多少代价才能确定 A[1N]A[1\sim N]A[1∼N]。( 其中 N1000Cost[L][R]109N\leqslant 1000,Cost[L][R]\leqslant 10^9N⩽1000,Cost[L][R]⩽109 )

Prufer序列

例题

给定每个点的度数 d[i]d[i]d[i] ,求出有几颗这样的无根树

二分图

概念

可以分成两部分,使得这两部分内部没有边的图。
一个图是二分图\Leftrightarrow⇔该图没有奇环
如何判断?
1、判断一张图是否有奇环
2、判断一张图是否有偶环

字符串

KMP模式匹配

Fail[N]Fail[N]Fail[N] 表示字符串 s[1N]s[1\sim N]s[1∼N] 最长的相等的前后缀。
For example\mathfrak{For\ example}For example, bobocowFail=[0,0,1,2,0,0,0]\begin{aligned} &amp;bobocow\\ &amp;Fail=[0,0,1,2,0,0,0] \end{aligned} ​bobocowFail=[0,0,1,2,0,0,0]​求一个串的最小循环节。解析

例题

1、NOI2014 动物园

标签:NNN,7.29,短路,给定,正睿,111,例题,集训,leqslant
来源: https://blog.csdn.net/weixin_44341982/article/details/97624030