「Log」做题记录 2023.8.28-2023.9.24
\(2023.8.28-2023.9.3\)
\(\color{blueviolet}{P3704}\)
莫反。
\(\color{limegreen}{P8773}\)
ST 表。
\(\color{limegreen}{P7167}\)
建树,倍增。
\(\color{blueviolet}{P3794}\)
枚举右端点,二分左端点,遍历左端点记录贡献即可。
\(\color{royalblue}{P8010}\)
线段树被卡了,抄题解。
\(\color{royalblue}{P3437}\)
四叉树又被卡了,抄题解。
\(\color{blueviolet}{P2048}\)
神奇贪心,ST 表+堆。
\(\color{royalblue}{P1545}\)
单调队列优化 DP,转移方式的思考过程较为思维。
\(\color{limegreen}{P1442}\)
线段树建立关系,简单 DP。
\(\color{blueviolet}{CF960F}\)
考虑按顺序加入每一条边,减少了编号的限制,考虑找到所有比当前边权小的点中答案最大的进行转移即可。
\(\color{blueviolet}{P3506}\)
不难看出是 DP,注意转移(最优子结构)的正确性证明。
\(\color{blueviolet}{P3628}\)
斜率优化。
\(\color{blueviolet}{P2900}\)
斜率优化。
\(\color{blueviolet}{CF1085D}\)
脑筋急转弯题,考虑叶子节点贡献最少。
\(\color{blueviolet}{P3172}\)
考虑每个因数的贡献,容斥一下即可。
\(\color{royalblue}{P2571}\)
三分套三分。
\(\color{blueviolet}{CF1267G}\)
期望 DP。
\(\color{lavender}{CF1085F}\)
期望 DP。
\(2023.9.4-2023.9.10\)
\(\color{blueviolet}{CF1120D}\)
下树后变成区间加和的形式,考虑差分后贡献的转移,最小生成树即可。
\(\color{royalblue}{CF1763D}\)
分讨题,考虑枚举最大值出现位置排列组合即可。
\(\color{blueviolet}{CF1771F}\)
不难想到主席树维护前缀异或,发现会出现出疏漏,考虑为所有值随机映射防止重复。
\(\color{royalblue}{CF1763E}\)
考虑一个强连通用分量的贡献,直接背包+排列组合。
\(\color{blueviolet}{CF536E}\)
离线询问后树剖。
\(\color{royalblue}{CF1749D}\)
即每次删第一个一定可以删完。所以考虑一种序列是优美的当且仅当其只存在这种删除方式,对于 \(a_i\),为保证只有一种删除方式,必须满足 \(\gcd(a_i,j)\not=1\quad(2\le j\le i)\)。方案数是好求的
\(\color{blueviolet}{CF1746F}\)
注意到如果每个数字都出现 \(k\) 次,那么此区间和一定是 \(k\) 的倍数。对于这种必要条件可以进行随机映射来减小冲突概率(只要我必要条件足够多那就是充要),也是前几天刚学的 Trick,异或哈希。
\(\color{blueviolet}{CF627D}\)
最小值最大一眼尝试二分,换根 DP 验证即可。
\(\color{black}{P5331}\)
CDQ 优化网络流建图。
\(\color{royalblue}{P5787}\)
板子。
\(\color{blueviolet}{P5368}\)
分讨即可,二分或双指针解决。
\(\color{blueviolet}{P4097}\)
板子。
\(\color{blueviolet}{P4254}\)
李超线段树板子。
\(\color{blueviolet}{P3121}\)
AC 自动机,在 Trie 树上跑的时候记录一下每个字符在 Trie 树上的位置,删除时回退即可。
\(2023.9.11-2023.9.17\)
\(\color{royalblue}{P3391}\)
板子。
\(\color{blueviolet}{P4146}\)
序列平衡树。
\(\color{blueviolet}{P2596}\)
序列平衡树。
\(\color{blueviolet}{P4052}\)
AC 自动机+DP。
\(\color{blueviolet}{P2257}\)
简单莫反。
\(\color{blueviolet}{P2042}\)
巨大细节序列平衡树。
\(\color{blueviolet}{P5341}\)
SAM。
\(\color{blueviolet}{P4070}\)
SAM。
\(\color{blueviolet}{SP8222}\)
SAM。
\(\color{blueviolet}{SP1811}\)
SAM。
\(\color{blueviolet}{P3749}\)
最大权值闭合子图。
\(\color{blueviolet}{P1251}\)
拆点后进行建模。
\(\color{blueviolet}{P2774}\)
二分图独立集,限制仅在奇偶性不同的点对中产生时可以这么解决。
\(\color{blueviolet}{P3355}\)
同理二分图独立集。
\(\color{blueviolet}{P2633}\)
每次从父节点继承线段树状态,多树联查即可。
\(\color{royalblue}{P1493}\)
啊偏序问题(大概?),改一下式子排序优化复杂度即可。
\(\color{royalblue}{P1772}\)
最短路+DP。
\(\color{limegreen}{P6323}\)
DP。
\(\color{blueviolet}{P4012}\)
网络流拆点建重边即可。
\(2023.9.18-2023.9.24\)
\(\color{blueviolet}{P1495}\)
CRT 板子。
\(\color{royalblue}{P1495}\)
CRT 板子。
\(\color{royalblue}{P3585}\)
模拟题,找到第一个应该印墨水的地方进行判断即可。
\(\color{royalblue}{P3594}\)
二分+单调队列。
\(\color{blueviolet}{P3596}\)
巨大树形 DP,考虑枚举断掉的边,维护子树内外直径即可。
\(\color{blueviolet}{P3586}\)
考虑构造询问的最优策略,平衡树维护值域即可。
\(\color{blueviolet}{P5455}\)
考虑到 \(m\) 范围很小,并且每次选择同样代价一定选择价值更高的,我们维护区间代价在 \([1,m]\) 范围内的每个价格最值,询问时合并所需区间跑背包即可。
\(\color{blueviolet}{P4597}\)(\(\color{blueviolet}{CF713C}\) 双倍经验)
用优先队列维护以前所有数字尽可能小的最大值,乱搞即可。
\(\color{blueviolet}{P3590}\)
考虑到一种性质,答案一定有一个端点距离序列一个端点距离不超过 \(2\),暴力枚举即可。
\(\color{blueviolet}{P3582}\)
类套路题,考虑每次加入一个左端点,抵消上一次这个数的贡献即可。
\(\color{blueviolet}{P3588}\)
较为板子的线段树优化建图,对于每一个约束建一个超级源点,再用线段树优化建图,最后跑拓扑排序。
\(\color{blueviolet}{P3592}\)
神秘的区间 DP,设 \(f_{i,j,k}\) 表示 \([i,j]\) 之间的店最小价格为 \(k\) 的最大收益。
\(\color{blueviolet}{P3597}\)
矩阵题,考虑用矩阵维护路径条数,倍增算即可。
\(\color{blueviolet}{P3589}\)
考虑对于小串中每一个字符讨论其起点可行范围,考虑到 \(aq\) 的范围连续,对其进行差分,去除不合法解。
\(\color{blueviolet}{P3591}\)
根号分治,预处理一下一次跳 \(k\) 步跳至根的贡献即可。
\(\color{blueviolet}{P3587}\)
考虑对于每一个颜色分别做前缀和,当两个位置前缀和相同就意味着这两个位置可以作为一对切割点。又因为 \(k\) 是 \(10^6\) 级别的,用哈希判断相等即可。
\(\color{black}{P3583}\)
打表找规律题。
\(\color{lavender}{P9294}\)
DP。
\(\color{black}{P3584}\)
对食物设状态,考虑其被谁吃掉,转移有些繁琐。
\(\color{black}{P3581}\)
先分讨,最后一种情况尝试一个一个放进环中,状压一下刚放的三个,进行 DP 转移。
\(\color{lavender}{P9297}\)
分块。
\(\color{blueviolet}{P3513}\)
考虑到一种性质,团中点的度一定大于独立集中点的度。
\(\color{blueviolet}{P3514}\)
分奇偶性考虑即可。