当查询前 k k k个最值区间时可以将开始时先将区间丢入堆中,每次取出堆顶然后将区间按照答案分裂成两个存入堆中
[NOI2010]超级钢琴【RMQ,堆】
[十二省联考2019]异或粽子【可持久化Trie,堆】
将权值改为矩阵,然后将运算改成广义矩阵乘法
然后用区间数据结构维护即可
[模板]动态DP【矩阵乘法,树链剖分,线段树】
保卫王国【动态dp,最小覆盖集】
迷宫【ddp,线段树,矩阵乘法】
首先是必要的动态开点,然后合并时从需要合并的两颗线段树的根出发
时间复杂度 : 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]
结论:最小割中对于一条边 ( 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】
n ∗ m n*m n∗m的矩阵对角线会穿过 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+m−1个格子,所以我们可以将 n ∗ m n*m n∗m拆分成 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+m−gcd(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]树【线段树,扫描线,倍增】
φ ( 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=1∏kpipi−1
[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{∣xi−xj∣,∣yi−yj∣}
用法:
世界第一的猛汉王【切比雪夫距离,扫描线】
每个极大匹配都是完全匹配的充要条件是在完全匹配中每个联通块两边点数相同且都是满二分图。
证明
证毕
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}=T∈S∑min{T}∗(−1)∣T∣−1
对于一个这样的三角形
B C BC BC和 C A CA CA中有一条斜率比 A B AB AB小,一条比 A B AB AB大