【题解】Solution Set - 「蓝」题板刷
【题解】Solution Set - 「蓝」题板刷
始于:2024/9/1
(其实之前大概做了十来道,但是没有记录。
估计题会比较多,如果从代码里面过来的话,建议直接 Ctrl/⌘+F
题目名称。
【模板】左偏树/可并堆
2024/8/31
打的两只 \(\log\) 的做法,左偏树还待学习。
「USACO18JAN」MooTube G
2024/9/1
一句话题意:https://www.luogu.com/discuss/125319
给定一棵有边权的树,每次询问 \((x,k)\),距离大于等于 \(k\) 的有多少个
机翻?看不懂一点。
我们先把大于等于 \(k\) 的边拎出来,然后每个点的答案就是当前联通块的大小 \(- 1\)。
考虑离线,从大到小加边,dsu 维护联通块就做完了。
「TJOI2011」卡片
2024/9/1
感觉有点像二分图的感觉。
暴力连边,跑 dinic 的时间复杂度是 \(O(Tn^\frac 52)\)。然后 T 飞了。
瓶颈是边数。两个点连边,其实就是这两个数存在公因数。考虑每个数向其质因数(虚点)连边,这样边数就缩减到 \(O(n \log V)\) 级别。整体 \(O(Tn^\frac 32\log V)\),能通过此题。
「CSP-S2019」Emiya 家今天的饭
2024/9/9
\(f_{i,j}\):在前 \(i\) 种烹饪方式中选取 \(j\) 个的方案数。(不考虑第三条限制。
有转移:
考虑减去不满足第三条限制的方案。
我们枚举这个食材。
\(g_{i,j}\):对于食材 \(i\) 前 \(j\) 种烹饪方式,选取了至少 \(\left\lfloor\dfrac n2\right\rfloor\) 个当前食材的方案数。
有转移:
「SDOI2008」 Sue 的小球
2024/9/15
很典的费用提前计算的问题。最开始的模板问题应当是:关路灯
区间 dp。
\(f_{i,j,0/1}\):收集完 \([i,j]\) 范围内的彩蛋停在 \(i/j\),对于所有的彩蛋的最小损失时间。
那么答案就应该是 \(\sum y-f_{1,n}\)。
「HAOI2006」数字序列
2024/9/15
考虑一个最 naive 的 dp。
\(f_{i,j}\):前 \(i\) 个末尾为 \(j\) 的最小修改次数。
所以说,相当于每求一个前缀最小值,然后全局 \(+1\),再单点 \(-1\)。
注意到,区间加一实际上是不会影响前缀最小值。
所以第一问是好做的。
第二问好难。。。
33min passed...
好神奇的一题。
https://www.luogu.com.cn/article/ddzz3syq
主要是要想到下面这两点:
-
最少修改的点转化为最多不修改的点。(我之前那个 ds 优化就不太好拉取方案,但是现在这个就很好做。
-
对于两个保留点之间的点 \(i,j\),也就是需要被改到值域在 \([a_i,a_j]\) 内。一个结论:
存在一个断点 \(k\),使得 \([i+1,k]\) 改成 \(a_i\) 同时 \([k+1,j+1]\) 改成 \(a_j\) 是不劣于最优解的。
- 第一个算是一种套路吧。
- 第二个应该就需要一点感性感知。
注意: