$CSP$ 就要到辣!场外退役选手正准备抱一抱 $\Large\color{orange}{\texttt{佛}}$ 脚。

所谓复习者,实则是康一康以前切(he)过的所有有一定难度的题目 $AwA$。

因为我的做题量属实不行,所以这个坑应该很快会填完!

UPD: $NOIp$ 就要到辣!场外退役选手正准备抱一抱 $\Large\color{orange}{\texttt{佛}}$ 脚。




$2020.07.01-2020.07.20$

闲话

很奇怪,我的第一道紫题比蓝题来的还早。

现在去看才发现这道题真的水,难怪那时候那么逊的笔者也肝出来了。

启发

  1. 对于 数据范围较小 的树形图,干脆就预处理每对点之间的 $dis_{u,v}$ ,便于以后 $dp$ 时转移。

  2. 动态查找树上最远/近点对,第一眼应该想到 树形 $dp$ 而非点分树啊啥的。这种题目维护一个最大/小值,维护一个次大/小值,并对其动态更新就是了。


闲话

那时不懂事,见到个带除号的就说是分数规划,没想到还真给我说对了一回。

还真就是分数规划的板子题啊。

启发

  1. 分数规划 的基本形态: $\dfrac{\sum v_i}{\sum w_i}=\eta$ 。我们的目的就是让这个 $\eta$ 尽可能大。

考虑化式子:

二分 $\eta$ 的答案,一通胡乱代算就行了。

  1. 如果发现 $dp$ 方程出现 $\ if(dp_{i,j}+f_{i}>dp_{j})\quad balabala;\;$ 的句子出现,甚至可以跑 最短路

闲话

我明确记得这是我听机房神仙讲vjudge上的题中,少有的能听懂的一道。

启发

如果一道贪心题,对一个对象什么时候进行操作,结果都一样的时候,那就要么越早越好,要么拖到最后一秒(卡点预警


闲话

听说因为这题写三模哈希的人都被hack了四次,CF特色。

KMP 专场算是我早期打 $vjudge$ 上面的比赛打的比较好的一次了,虽然也冲不进前五。

启发

  1. 需要深刻认识到 KMP 算法中 失配指针 的意义:一个串的前缀和后缀最大匹配长度。

  2. 字符串 拼接 不是融合,有时需要用特殊字符(串)分割两个拼接的字符串。


闲话

$\color{black}{R}\color{red}{UI_R}$ 神那时候好像还分不清补图和
反图,被我大肆嘲笑了一番。

启发

题目要是说什么“两人之间有XX关系”阿巴阿巴之类的,不是并查集就是两点之间连一条边跑搜索。这题就是一道连边跑 $bfs$ 。


闲话

讨论区里的两篇翻译质量都好高啊(((

可惜只能选取其中一份。

启发

当我们尝试对数组、矩阵、STL 等大型容器做一些变换时,倘若直接交换、移动元素的工作量会很大,我们可以考虑只变换 具有代表性的一个位置 的指针,以减小工作量。

比如这题就是用一个方块 左上角 的位置对应指针,再对指针进行移动、交换的。


闲话

你谷上的有悔贪心习题是真的少,不过是找道板子题都紫题起步。

但是也正因为这道题我才发现,51nod才是真的不行,下载数据都要花钱。

启发

有悔贪心,一个极为鲜明的特点就在于,不管是什么时候选,选它的代价往往都只是一个 固定的数值

而实现的方式也很简单,一种是记录选择了什么元素,一种是留下一个反悔点,让之后还可以有后悔的机会。


闲话

题解区的压行大师zhh不压行了,我的青春结束了。

启发

$2^k$ 有个极妙的性质,一个 $2^k$ ,即使所有 $2^i(i<k)$ 加起来也不如它。

所以这道题无脑暴搜,优先取编号 $k$ 大的即可。


闲话

臭名昭著的剪枝题,用上了8种剪枝才过的题。

我就是不行。

启发

虽说臭名昭著,但有的剪枝还是该学习的。

  1. 该退出赶紧退出,既然已知道剩下都是在空跑循环,做额外功,为什么不在能 $return$ 的 最近 的地方赶紧走人呢。

  2. 暴搜不等于无脑,有的时候 手推 出的遍历的上下界就特别优秀。


闲话

给指导在台上讲杜教筛,蒟蒻听得一脸懵比。

没办法,只能学前置芝士,结果就滚到了这里。

启发

数论分块中的整除分块,可以根号解决大部分向下取整的问题。

其实就是这个式子:

(大草,我不会 $\LaTeX$ 。)

然后将 $i$ 到 $\left\lfloor\dfrac{k}{\lfloor\frac{k}{i}\rfloor}\right\rfloor$ 当成一个整体一起算就是了。


闲话

并查集专场人生巅峰,拿了俩一血和一个泉水一血,至今还是那场的 $rank\ 1$ 。

后来就越来越不行了。

启发

  1. 最小生成树中同一种边权出现的个数是 固定的 ,证明略。感性理解是,如果还有另一种方法来替换其中一条边,他就不能叫 最小 或者不能叫 了。
  2. 对于边权未知的题,开桶之前还是 离散化 一下最为靠谱,尽管题目好像跟你说了同一种边权不会超过十条。(杰宝一开始兴致勃勃地想用乱搞搞过去,结果打了个指数算法还假掉了)。


$2020.07.21-2020.08.20$

闲话

写到这道题的时候才发现以前一直打的 $gauss$ 消元都是假的。

从一个侧面反映了你谷数据水。

启发

  1. 手打 $swap$ 要!传!地!址!洛谷上的模板是什么辣鸡数据。

  2. $double$ 运算小心炸精,遇事不决先 $\times 1.0$ 。


闲话

噫,我完全不记得怎么做了,怕不是我又贺题解了。

启发

  1. 要在基环树上断边使原图联通,则必断 上的点。

  2. 应有化繁为简意识,比如这一题就可以把基环树下挂树内最长路径,存到环上点中作为点权。


闲话

第一眼:$dp$ !

第二眼:单调栈 !

第三眼:我傻了。

弱的只是我罢。/dk/dk

启发

悬线法,一种求 最大矩阵 的高妙做法。

大体思路是往 两边扩展 直到无法满足条件。可惜后来这样的题越来越少了,学个思想就行了(吧?)


闲话

我做这题的时候根本没学过“线段树优化建图”嗷,即使是现在也没学会。

但就是 YY 出了正解,小编也很惊讶。

启发

带线段树的题一定要开好空间!全天下的线段树不全都是 $4$ 倍空间,这题开的就是 $8$ 倍。


闲话

珂朵莉树好写又好吃,为什么不写?(指不恰当地使用 $set$ 导致疯狂 $RE$ )

可惜这道板子题已经掉紫,成为时代的眼泪了。

启发

  1. 一定要先 $split$ 右区间,否则可能会 $RE$

  2. 有的函数装在 <cmath> 库里,码的时候千万小心冲突。可能在本地不会给你报错。


闲话

这题还是我上去讲的。

听别人说,他们觉得我讲题的套路从来就是:“XXX是板子,我不讲了。XXX只要和XXX一样反着跑就行了。XXX就不用我多说了吧……”

能听懂的才是人上人嗷!

启发

  1. 如果几方面的决策互不影响,则可以考虑将他们 分开来 分别 $dp$ 。比如这里的买、卖和什么都不做的情况,每天只能做他们其中的一个。

  2. $dp$ 顺序一定要注意,如果是有意让 $i-1$ 不影响 $i$ ,就应该反向扫。


闲话

当初 $RUI_R$ 问我这道题的时候其实我是拒绝的,因为它真的很水很板,直到我自己码的时候处处出锅。

我们成家班都在码

启发

  1. 枚举状态要枚举到 $0$ ,因为全空也是一种情况。

  2. 状压初始状态设计应设计得当,避免有漏初始化的情况。


闲话

做这题的时候第一次接触了 hack.chat 这个神仙网站,后来就把它当成了以后的加密通讯工具(笑)

启发

  1. 对于两数与/或/异或求 $\min,\max$ 的题目,可以开数组,按位考虑取0还是1。

  2. 位运算小心爆精,能开 long long 开 long long ,能开 int128 开 int128 ,比如这题就只能开 128 水过。


闲话

喔!这题就是我交了122发的那道退火!!!

启发

int 类型的函数一定要有 返回值

有时候这里的锅呈现出来的是 TLE ,调起来极其自闭。



$2020.08.21-2020.09.10$

闲话

明明一道 $set$ 水过的题要做这么麻烦,这一切,值得吗?

启发

善于使用“ 改变循环顺序 ”的方法优化/卡常。

比如这里就可以将地砖排序,不联通后马上 $break$ 的方法,以达到每次减小循环长度的作用。


闲话

hoho!我就是不行,远古联赛第二题都要看题解!

启发

对于多个决策点之间的距离过大,有大量转移的结果往往相同的时候,可以考虑 路径压缩 ,类似图论中的缩点。


闲话

zb的大合唱站队/xyx

启发

状压dp的状态可以表示的东东不限于该点的存在,还可以表示是否归位、存活可能性之类的。


闲话

一道从初三解决到高一的历史性问题。

甚至横跨了一整个AFO周期都没推出贪心式子。

启发

两条流水线排工程的题目,基本思路为 johnson 算法:即在 $A$ 流水线上快的按耗时递减排,在 $B$ 流水线上快的按耗时递增排。


闲话

我就是在写这题的时候被QY叫出去D爆的!

我倒是记得清楚。

启发

  1. 走来走去求方案数的题大多可以矩乘解决,比如《美食家》。

  2. 有一个东西叫什么薛山定理的,大体就是:有规律的转移往往会回到最初状态。 即:$f(n)=f(0)$


闲话

你谷是不是人均人赢啊!

下辈子当个给说不定树论会好一点。

启发

证明树上两条路径有交点的方法:$dis(A,B) + dis(C,D) ≥ dis(A,C) + dis(B,D)$


闲话:

为什么会有 2000m 高的人,不知道高到哪里去了。

启发

需要区间dp的题目的两种要素:

  1. 如果是最优解类题目,则要求全局答案必须满足 每一个小区间 都为最优答案。

  2. 如果是计数类题目,则要求大区间是在 小区间的基础上 建立的。



$2020.09.11-2020.09.30$

闲话

我记得我说过联赛前碰数论就吃奥利给来着。

启发

背熟:


闲话

数论只会GCD。

好家伙,现在连GCD都不会了。

启发

  1. $\gcd(a,b)=1 \Leftrightarrow \gcd(a p,b p)=p$

  2. 若正着推一道数论不可做,可以考虑他的组成,以及各部分的贡献。


闲话

这道题结合了数学、图论、字符串的申必知识。

傻逼三合一

启发

  1. 树上两点间路径唯一。

  2. 异或满足结合律。

  3. Trie树可以解决大部分异或问题。


闲话

不会真的有人矩阵下标从一开始的吧,不会吧不会吧。

启发

对于这种方案数统计的题目,可以考虑用矩乘优化。其中,倘若出现“直接结束”这一情况,可以看作我们将状态转移到了一个 没有出边的0号结点


闲话

这显然不是 CF 的题,不然的话……

启发

二维哈希的获取方法与前缀和类似,有如下方法截取一个方块的哈希值:

HASH[x1][y1] - HASH[x1][y2 - 1] * power1[len] - HASH[x2 - 1][y1] * power2[len] + HASH[x2 - 1][y2 - 1] * power1[len] * power2[len];


闲话

珂朵莉天下第一(((

这时候肯定有个奈芙莲厨会表示异议了

启发

适用珂朵莉树的两大特征:区间赋值数据随机


闲话

一听说有多倍经验就火速赶来。

启发

一般情况下的 树上背包 的状态都为 $dp_{\ i,j}$ 表示以 $i$ 为根的子树中选 $j$ 个的价值。


闲话

奶牛题的不可变性+CF题的不可变性+POI题的不可变性+FJ夏令营题的不可变性=4倍经验

启发

换根 dp ,讲究 $O(1)$ 从一个根的情况转移到另一个根的情况。多半要处理出子树大小之类的信息。


闲话

第一次最优解大战和第二次最优解大战古战场凭吊~

奠 shenmadongdong 奠

启发

凡是长得像 $dp_{\ i}=\max\{dp_{\ x}\}+1$ 这样的式子(类似 LIS)。大都可通过算贡献的方式优化到一只 $\log$ 。


闲话

为什么你会这么熟练,你……

白学家打死。

启发

  1. 如果我们已知一个二元一次不定方程的特解,我们可以使 $x_0$ 加上 $k$ 个 $b$ , $y_0$ 减去 $k$ 个 $a$ 来获取下一组通解。
  1. $ax+by=c$ 的不定方程,若 $c\bmod \gcd(a,b)\neq 0$ ,无整数解。

闲话

淦tmd高斯消元。

明明搜就完事了的。

启发

折半搜索,用于优化指数,适用在 左右两边互不干扰 ,最终状态是一个 确定 的状态的题目里。


闲话

众所周知,Trie 是树所以可以做 Trie 树上 dp。

众所周知,AC自动机就是 Trie 树上加了几个指针变成了图,所以可以做 AC 自动机上 dp 。

启发

AC自动机上考虑一个字符串的贡献时,需要把这个字符串 子串的贡献 加在它上面。


-P4550 收集邮票

闲话

觉得这题不够劲可以来刚一下我的 RUI_R 系列5

如果看不懂剧情可以到我的主页阅览前四题。(推销)

启发

期望代价的一种感性求法:

期望次数 $\times$ 平均代价



$2020.10.01-2020.10.30$

这段时间我的所作所为可以轻而易举地在《紫题算法学习实况》中看到,这里不多说了。