学习手记(2019/7/05~2019/8/31)——快乐暑假

文章目录

    • 二分答案的作用
    • 堆和区间
    • 很糙ddp
    • 线段树合并
    • 网络流结论の1
    • 树上莫队
    • 对角线与GCD
    • 区间与扫描线与方案数
    • 欧拉欧拉*1
    • 斯坦纳树
    • 切比雪夫距离
    • 二分匹配结论の1
    • min-max容斥
    • 计算几何の -1


二分答案的作用

  1. 求最大值最小 o r or or最小值最大
  2. 将求值问题转换为判断问题
  3. 在判断问题之间相互转换

堆和区间

当查询前 k k k个最值区间时可以将开始时先将区间丢入堆中,每次取出堆顶然后将区间按照答案分裂成两个存入堆中

[NOI2010]超级钢琴【RMQ,堆】
[十二省联考2019]异或粽子【可持久化Trie,堆】


很糙ddp

将权值改为矩阵,然后将运算改成广义矩阵乘法
然后用区间数据结构维护即可
[模板]动态DP【矩阵乘法,树链剖分,线段树】
保卫王国【动态dp,最小覆盖集】
迷宫【ddp,线段树,矩阵乘法】


线段树合并

首先是必要的动态开点,然后合并时从需要合并的两颗线段树的根出发

  1. 若两边都有左节点那就递归左节点(右节点同理)
  2. 若只有一边有左节点那就让合并后的树直接连接向左节点(右节点依旧同理)

时间复杂度 : O ( n log ⁡ n ) :O(n\log n) :O(nlogn)
时间复杂度证明(很糙):

我们不难发现合并的最大复杂度是最小的那颗子树的大小,那么因为只有 n n n次插入那么一棵树最多 n log ⁡ n n\log n nlogn个节点,但是因为是最小的那颗子树大小,所以不可能每颗子树都是 n   l o g n n\ log n n logn个节点,所以对于每个节点最多被作为最小的子树合并 log ⁡ n \log n logn次。

证毕

([NOI2013模拟]法法塔的奖励【权值线段树,线段树合并】)[https://blog.csdn.net/Mr_wuyongcong/article/details/95209896]


网络流结论の1

结论:最小割中对于一条边 ( x , y ) (x,y) (x,y)在残量网络中 s s s可以到达 x x x不能到达 t t t y y y可以到达 t t t不能到达 x x x那么这条边是必割边

证明:

在残量网络上 s s s可以到达 x x x y y y可以到达 t t t那么说明若该边不割那么 s s s就可以通过该边到达 t t t。假设在 s s s x x x的路上有同样长度的一条道路且割掉后可以使 s s s到达 x x x那么在残量网络上该边的流量必定为0,因为切割掉 x − > y x−>y x>y的流量也必定会经过该边所以在残量网络上 s s s就不可以到达 x x x了。所以该假设不成立。

证毕
秘密任务【最短路,网络流最小割】


树上莫队

维护一个欧拉序,然后在欧拉序上进行莫队即可。
[NOI2013模拟]苹果树【树上莫队,LCA】


对角线与GCD

n ∗ m n*m nm的矩阵对角线会穿过 n + m − ( n , m ) n+m-(n,m) n+m(n,m)个格子
证明:

对于若 ( n , m ) = = 1 (n,m)==1 (n,m)==1(互质)则会经过 n + m − 1 n+m-1 n+m1个格子,所以我们可以将 n ∗ m n*m nm拆分成 g c d ( n , m ) gcd(n,m) gcd(n,m) n / g c d ( n , m ) ∗ m / g c d ( n , m ) n/gcd(n,m)*m/gcd(n,m) n/gcd(n,m)m/gcd(n,m)的格子于是我们发现答案就是 ( n / g c d ( n , m ) + m / g c d ( n , m ) − 1 ) ∗ g c d ( n , m ) (n/gcd(n,m)+m/gcd(n,m)-1)*gcd(n,m) (n/gcd(n,m)+m/gcd(n,m)1)gcd(n,m)
也就是 n + m − g c d ( n , m ) n+m-gcd(n,m) n+mgcd(n,m)

证毕

蛋糕切割【数论,GCD】


区间与扫描线与方案数

对于 x , y x,y x,y,给出若干个限制如下:
x ∈ [ L x i , R x i ] x\in [Lx_i,Rx_i] x[Lxi,Rxi]时要求 y ∉ [ L y i , R y i ] y\notin [Ly_i,Ry_i] y/[Lyi,Ryi]

那么我们可以建立一个 ( L x i , L y i , R x i , R y i ) (Lx_i,Ly_i,Rx_i,Ry_i) (Lxi,Lyi,Rxi,Ryi)的矩阵然后扫描线求矩阵的总覆盖面积即可。

[Noip提高组模拟1]树【线段树,扫描线,倍增】


欧拉欧拉*1

φ ( m ! ) = m ! ∏ i = 1 k p i − 1 p i \varphi(m!)=m!\prod_{i=1}^k \frac{p_i-1}{p_i} φ(m!)=m!i=1kpipi1
[SDOI2008]沙拉公主的困惑【线性筛,欧拉函数,逆元】


斯坦纳树

一张图,求一个最小权的生成树要求包含指定的点。

用状态压缩 d p dp dp后用 S P F A SPFA SPFA转移(因为有后效性)
挖宝藏(treasure)【斯坦纳树,SPFA,状压】


切比雪夫距离

定义:
d i s i , j = m a x { ∣ x i − x j ∣ , ∣ y i − y j ∣ } dis_{i,j}=max\{|x_i-x_j|,|y_i-y_j|\} disi,j=max{xixj,yiyj}

用法:

  1. 将曼哈顿距离转换为切比雪夫距离,让 ( x , y ) (x,y) (x,y)变为 ( x + y , x − y ) (x+y,x-y) (x+y,xy)。与一个点距离 ≤ D \leq D D的点就变为了在改点为中心的 2 ∗ D 2*D 2D长的正方形内。
  2. 将切比雪夫距离转换为曼哈顿距离,让 ( x , y ) (x,y) (x,y)变为 ( x + y 2 , x − y 2 ) (\frac{x+y}{2},\frac{x-y}{2}) (2x+y,2xy)。然后就可以使用二维前缀和进行计算。

世界第一的猛汉王【切比雪夫距离,扫描线】


二分匹配结论の1

每个极大匹配都是完全匹配的充要条件是在完全匹配中每个联通块两边点数相同且都是满二分图。

证明

学习手记(2019/7/05~2019/8/31)——快乐暑假_第1张图片

证毕


min-max容斥

m a x { S } = ∑ T ∈ S m i n { T } ∗ ( − 1 ) ∣ T ∣ − 1 max\{S\}=\sum_{T\in S} min\{T\}*(-1)^{|T|-1} max{S}=TSmin{T}(1)T1


计算几何の -1

对于一个这样的三角形学习手记(2019/7/05~2019/8/31)——快乐暑假_第2张图片
B C BC BC C A CA CA中有一条斜率比 A B AB AB小,一条比 A B AB AB


你可能感兴趣的:(学习手记)