$CSP$ 就要到辣!场外退役选手正准备抱一抱 $\Large\color{orange}{\texttt{佛}}$ 脚。
所谓复习者,实则是康一康以前切(he)过的所有有一定难度的题目 $AwA$。
因为我的做题量属实不行,所以这个坑应该很快会填完!
UPD: $NOIp$ 就要到辣!场外退役选手正准备抱一抱 $\Large\color{orange}{\texttt{佛}}$ 脚。
$2020.07.01-2020.07.20$
闲话:
很奇怪,我的第一道紫题比蓝题来的还早。
现在去看才发现这道题真的水,难怪那时候那么逊的笔者也肝出来了。
启发:
对于 数据范围较小 的树形图,干脆就预处理每对点之间的 $dis_{u,v}$ ,便于以后 $dp$ 时转移。
动态查找树上最远/近点对,第一眼应该想到 树形 $dp$ 而非点分树啊啥的。这种题目维护一个最大/小值,维护一个次大/小值,并对其动态更新就是了。
闲话:
那时不懂事,见到个带除号的就说是分数规划,没想到还真给我说对了一回。
还真就是分数规划的板子题啊。
启发:
- 分数规划 的基本形态: $\dfrac{\sum v_i}{\sum w_i}=\eta$ 。我们的目的就是让这个 $\eta$ 尽可能大。
考虑化式子:
二分 $\eta$ 的答案,一通胡乱代算就行了。
- 如果发现 $dp$ 方程出现 $\ if(dp_{i,j}+f_{i}>dp_{j})\quad balabala;\;$ 的句子出现,甚至可以跑 最短路 。
闲话:
我明确记得这是我听机房神仙讲vjudge上的题中,少有的能听懂的一道。
启发:
如果一道贪心题,对一个对象什么时候进行操作,结果都一样的时候,那就要么越早越好,要么拖到最后一秒(卡点预警)
闲话:
听说因为这题写三模哈希的人都被hack了四次,CF特色。
KMP 专场算是我早期打 $vjudge$ 上面的比赛打的比较好的一次了,虽然也冲不进前五。
启发:
需要深刻认识到 KMP 算法中 失配指针 的意义:一个串的前缀和后缀最大匹配长度。
字符串 拼接 不是融合,有时需要用特殊字符(串)分割两个拼接的字符串。
闲话:
$\color{black}{R}\color{red}{UI_R}$ 神那时候好像还分不清补图和
反图,被我大肆嘲笑了一番。
启发:
题目要是说什么“两人之间有XX关系”阿巴阿巴之类的,不是并查集就是两点之间连一条边跑搜索。这题就是一道连边跑 $bfs$ 。
闲话:
讨论区里的两篇翻译质量都好高啊(((
可惜只能选取其中一份。
启发:
当我们尝试对数组、矩阵、STL 等大型容器做一些变换时,倘若直接交换、移动元素的工作量会很大,我们可以考虑只变换 具有代表性的一个位置 的指针,以减小工作量。
比如这题就是用一个方块 左上角 的位置对应指针,再对指针进行移动、交换的。
闲话:
你谷上的有悔贪心习题是真的少,不过是找道板子题都紫题起步。
但是也正因为这道题我才发现,51nod才是真的不行,下载数据都要花钱。
启发:
有悔贪心,一个极为鲜明的特点就在于,不管是什么时候选,选它的代价往往都只是一个 固定的数值 。
而实现的方式也很简单,一种是记录选择了什么元素,一种是留下一个反悔点,让之后还可以有后悔的机会。
闲话:
题解区的压行大师zhh不压行了,我的青春结束了。
启发:
$2^k$ 有个极妙的性质,一个 $2^k$ ,即使所有 $2^i(i<k)$ 加起来也不如它。
所以这道题无脑暴搜,优先取编号 $k$ 大的即可。
闲话:
臭名昭著的剪枝题,用上了8种剪枝才过的题。
我就是不行。
启发:
虽说臭名昭著,但有的剪枝还是该学习的。
该退出赶紧退出,既然已知道剩下都是在空跑循环,做额外功,为什么不在能 $return$ 的 最近 的地方赶紧走人呢。
暴搜不等于无脑,有的时候 手推 出的遍历的上下界就特别优秀。
闲话:
给指导在台上讲杜教筛,蒟蒻听得一脸懵比。
没办法,只能学前置芝士,结果就滚到了这里。
启发:
数论分块中的整除分块,可以根号解决大部分向下取整的问题。
其实就是这个式子:
(大草,我不会 $\LaTeX$ 。)
然后将 $i$ 到 $\left\lfloor\dfrac{k}{\lfloor\frac{k}{i}\rfloor}\right\rfloor$ 当成一个整体一起算就是了。
闲话:
并查集专场人生巅峰,拿了俩一血和一个泉水一血,至今还是那场的 $rank\ 1$ 。
后来就越来越不行了。
启发:
- 最小生成树中同一种边权出现的个数是 固定的 ,证明略。感性理解是,如果还有另一种方法来替换其中一条边,他就不能叫 最小 或者不能叫 树 了。
- 对于边权未知的题,开桶之前还是 离散化 一下最为靠谱,尽管题目好像跟你说了同一种边权不会超过十条。(杰宝一开始兴致勃勃地想用乱搞搞过去,结果打了个指数算法还假掉了)。
$2020.07.21-2020.08.20$
闲话:
写到这道题的时候才发现以前一直打的 $gauss$ 消元都是假的。
从一个侧面反映了你谷数据水。
启发:
手打 $swap$ 要!传!地!址!洛谷上的模板是什么辣鸡数据。
$double$ 运算小心炸精,遇事不决先 $\times 1.0$ 。
闲话:
噫,我完全不记得怎么做了,怕不是我又贺题解了。
启发:
要在基环树上断边使原图联通,则必断 环 上的点。
应有化繁为简意识,比如这一题就可以把基环树下挂树内最长路径,存到环上点中作为点权。
闲话:
第一眼:$dp$ !
第二眼:单调栈 !
第三眼:我傻了。
弱的只是我罢。/dk/dk
启发:
悬线法,一种求 最大矩阵 的高妙做法。
大体思路是往 两边扩展 直到无法满足条件。可惜后来这样的题越来越少了,学个思想就行了(吧?)
闲话:
我做这题的时候根本没学过“线段树优化建图”嗷,即使是现在也没学会。
但就是 YY 出了正解,小编也很惊讶。
启发:
带线段树的题一定要开好空间!全天下的线段树不全都是 $4$ 倍空间,这题开的就是 $8$ 倍。
闲话:
珂朵莉树好写又好吃,为什么不写?(指不恰当地使用 $set$ 导致疯狂 $RE$ )
可惜这道板子题已经掉紫,成为时代的眼泪了。
启发:
一定要先 $split$ 右区间,否则可能会 $RE$
有的函数装在
<cmath>
库里,码的时候千万小心冲突。可能在本地不会给你报错。
闲话:
这题还是我上去讲的。
听别人说,他们觉得我讲题的套路从来就是:“XXX是板子,我不讲了。XXX只要和XXX一样反着跑就行了。XXX就不用我多说了吧……”
能听懂的才是人上人嗷!
启发:
如果几方面的决策互不影响,则可以考虑将他们 分开来 分别 $dp$ 。比如这里的买、卖和什么都不做的情况,每天只能做他们其中的一个。
$dp$ 顺序一定要注意,如果是有意让 $i-1$ 不影响 $i$ ,就应该反向扫。
闲话:
当初 $RUI_R$ 问我这道题的时候其实我是拒绝的,因为它真的很水很板,直到我自己码的时候处处出锅。
我们成家班都在码
启发:
枚举状态要枚举到 $0$ ,因为全空也是一种情况。
状压初始状态设计应设计得当,避免有漏初始化的情况。
闲话:
做这题的时候第一次接触了 hack.chat 这个神仙网站,后来就把它当成了以后的加密通讯工具(笑)
启发:
对于两数与/或/异或求 $\min,\max$ 的题目,可以开数组,按位考虑取0还是1。
位运算小心爆精,能开 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爆的!
我倒是记得清楚。
启发:
走来走去求方案数的题大多可以矩乘解决,比如《美食家》。
有一个东西叫什么薛山定理的,大体就是:有规律的转移往往会回到最初状态。 即:$f(n)=f(0)$
闲话:
你谷是不是人均人赢啊!
下辈子当个给说不定树论会好一点。
启发:
证明树上两条路径有交点的方法:$dis(A,B) + dis(C,D) ≥ dis(A,C) + dis(B,D)$
闲话:
为什么会有 2000m 高的人,不知道高到哪里去了。
启发:
需要区间dp的题目的两种要素:
如果是最优解类题目,则要求全局答案必须满足 每一个小区间 都为最优答案。
如果是计数类题目,则要求大区间是在 小区间的基础上 建立的。
$2020.09.11-2020.09.30$
闲话:
我记得我说过联赛前碰数论就吃奥利给来着。
启发:
背熟:
闲话:
数论只会GCD。
好家伙,现在连GCD都不会了。
启发:
$\gcd(a,b)=1 \Leftrightarrow \gcd(a p,b p)=p$
若正着推一道数论不可做,可以考虑他的组成,以及各部分的贡献。
闲话:
这道题结合了数学、图论、字符串的申必知识。
傻逼三合一。
启发:
树上两点间路径唯一。
异或满足结合律。
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$ 。
闲话:
为什么你会这么熟练,你……
白学家打死。
启发:
- 如果我们已知一个二元一次不定方程的特解,我们可以使 $x_0$ 加上 $k$ 个 $b$ , $y_0$ 减去 $k$ 个 $a$ 来获取下一组通解。
- $ax+by=c$ 的不定方程,若 $c\bmod \gcd(a,b)\neq 0$ ,无整数解。
闲话:
淦tmd高斯消元。
明明搜就完事了的。
启发:
折半搜索,用于优化指数,适用在 左右两边互不干扰 ,最终状态是一个 确定 的状态的题目里。
闲话:
众所周知,Trie 是树所以可以做 Trie 树上 dp。
众所周知,AC自动机就是 Trie 树上加了几个指针变成了图,所以可以做 AC 自动机上 dp 。
启发:
AC自动机上考虑一个字符串的贡献时,需要把这个字符串 子串的贡献 加在它上面。
闲话:
觉得这题不够劲可以来刚一下我的 RUI_R 系列5 。
如果看不懂剧情可以到我的主页阅览前四题。(推销)
启发:
期望代价的一种感性求法:
期望次数 $\times$ 平均代价 。
$2020.10.01-2020.10.30$
这段时间我的所作所为可以轻而易举地在《紫题算法学习实况》中看到,这里不多说了。