技巧瞎扯

时间:2020-04-28
本文章向大家介绍技巧瞎扯,主要包括技巧瞎扯使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

先声明一下,这里基本只是告诉你有这个东西,有这么回事,并且讲的很不详细,都是一笔带过,真正想体会还是通过做题的过程的。

差分
二分答案
根号分治,分块
拆点

正难则反

找单调性

LCT 维护边删除时间的最大生成树

树的重心和直径
树的直径中点

枚举右端点,维护有几个左端点满足条件(枚举一个,维护其它)

先排序确定选取后这些元素的顺序,先将所有元素排序,再对这些元素做选取(AT3605 Zabuton
邻项交换排序(国王游戏
比较前面先放一些元素,然后两个位置考虑 \(a\)\(b\),比较这种情况下 \(a\) 在前和 \(b\) 在前的代价,取其中更优的那个,把推出来的比较公式扔进 cmp 就行了,注意要满足严格弱序。

\(dp_i\) 表示强制第 \(i\) 个满足 xxx 条件,前 \(i\) 个的 xxx,人为添加第 \(0\) 个和第 \(n+1\) 个。
枚举的时候枚举上一个选的是哪个。

\(dp_i=\max\{dp_j+w(i,j)\}\)
\(dp_i=-\min\{-dp_j-w(i,j)\}\)
\((-dp_i)=\min\{(-dp_j)+(-w(i,j))\}\)

点对转成二维数点问题(APIO2019 路灯

原先设计的状态中答案范围小时,把储存的答案作为 DP 状态的某一维重新设计状态

森林:联通块数 = 点数 - 边数
实际问题未必给你个森林,要看得出来

整体二分处理到 \([l,l]\) 直接把 \(l\) 加入不撤销,大区间处理的时候加区间所有数结束时撤销。(AGC002D

补图转化(独立集\(\leftrightarrow\)团)
独立集的补集是点覆盖,匹配的补集是边覆盖。
二分图最大匹配=最小点覆盖

矩阵快速幂 bitset 优化

曼哈顿距离拆开 \(dis_{i,j}=\max((+x_i+y_i)+(-x_j-y_j),(+x_i-y_i)+(-x_j+y_j),(-x_i+y_i)+(+x_j-y_j),(-x_i-y_i)+(+x_j+y_j))\)

一些树上点之间的路径问题可以转为考虑每条边的贡献(CF1280C

枚举边替换最小生成树上的边(次小生成数 等)
Boruvka 算法(CF888G

权值线段树

树上差分

状压 DP 枚举子集 T=(T-1)&S,初始化 T=S
S 为全集,T 可以枚举到 S 的所有子集

开两个堆,其中一个保存要删除的数,每次取堆顶前比较两堆堆顶,一样就弹出,弹到空或不等为止。

并查集维护连续染色段(P2391

时光倒流(删边->加边)
线段树对时间分治

长链剖分维护深度有关的信息

最大流问题一般转化为最小割问题求解。
先全部选取,割掉的部分代表不选,答案 = 总和 - 最小割。
最大权闭合子图(NOI2006最大获利,NOI2009植物大战僵尸)

\(\gcd(a_1,a_2,\cdots ,a_n)=\gcd(a_1,a_2-a_1,a_3-a_2,\cdots ,a_n-a_{n-1})\)。差分维护

树上差分
点路径:x+1 y+1 LCA-1 LCA 的父亲 -1
边路径:x+1 y+1 LCA-2

边的信息下放到点上(QTREE1)
点的信息移动到父边(根的父亲加虚点)(QTREE6)
因为每一个点只有一个父边(除了根)

矩阵快速幂维护图上任意两点间可达性/距离(P2886 [USACO07NOV] Cow Relays G

冒泡排序交换次数 = 逆序对数
一轮交换的影响:记录第 \(i\) 个位置,它之前比它大的数的个数,每个位置的值加起来就是逆序对数。整体前移,然后所有非零数减一 \(\max(x-1,0)\) 个。(NOI Online R1 冒泡排序

4 1 5 3 2
0 1 0 2 3
1 4 3 2 5
0 0 1 2 0 (1 0 2 3 0-> 0 0 1 2 0)
1 3 2 4 5
0 0 1 0 0
1 2 3 4 5
0 0 0 0 0

路径异或一个环是另一条路径

一类状压DP题(CF1215E

树剖换根,并不是真的换根,查链不变,查子树时分类讨论,查询点在一开始建好的树的根和题目要求的根的链上时,取查询点不包含题目要求的根的所有子树信息即可,这其实就是两个部分信息并起来。否则照常(P3979

树形背包,处理第 \(i\) 个子树的时候,容量第一维枚举前 \(i-1\) 个子树的大小之和这里面取几个,第二维枚举这个子树中取几个,这样复杂度是 \(O(nk)\),可以看作每一对点至多被选取了一次,是在它们的 LCA 处的(01 背包两维都要倒序)。(P3177 [HAOI2015]树上染色

\(1\times 2\) 的覆盖问题,把棋盘黑白相间染色,覆盖的一定是相邻的一黑一白。

原文地址:https://www.cnblogs.com/IltzInstallBI/p/12793310.html