2024.3
SCOI 的故事说明我确实是一个下限很低,上限不高的选手。DAY2 翻盘很爽,但事实上这两天加起来就是个 Ag 表现。PKUWC 的时候也是很不稳定啊。
现在最大的能提升的地方,大概就是让自己的状态保持成一种能流畅想题的心平气和的状态吧。动不动就崩盘真的受不了。修炼自己的心,别太散漫,但也别太急。
做好该做的事情。不要走 Cu 的老路了。
打 JOISC 发现自己水平退化成二流选手了怎么办捏
下面是 whk 期间用空余时间做的一些好题+一句话题解
-1.SCOI D1T2
送命题。
用 SGU209 的方法划分出 个区域。然后需对每个区域计算有多少条直线在它右手,注意到相邻区域间的权值差只和隔开它们的直线有关系,于是随便 dfs/bfs 一下就算出来了。总复杂度应该是 。
0. SCOID2T2
救命题。
首先要观察到答案 。转化成对 个图维护左上角到右下角的割边。随便取一条 (1,1) 到 (n,m) 的路径,对每个点记下它在生成树上往上走遇到的第一个这条路径上的点,则每次连边就直接转化成区间覆盖了。
1. 联考D1T2 按位确定答案,即可避免每次遍历 trie。
2. 联考D2T1 记 为第 个点代表的序列开头为 的最小费用,即可转移并以此得到方案。
3. 联考D2T2 经典 DAG 容斥,把系数想清楚就好了。最后要拉插优化压掉一个 。
(D1T3&D2T3 咕一下。)
4. AGC057E RowCol/ColRow Sort
分析 01 看性质,再对 观察 ,则每一层的 都是本质相同的。只需对上一层的任意一个 ,计算下一层的 的方法即可,分析清楚后就是经典的 dp。
5. P6730 [WC2020] 猜数游戏
先把问题抽象成一个图上数合法子图的问题。然后这个图有很特殊的性质,就容易计数了。
6. P5548 [BJ United Round #3] 押韵
比较难的一步是算小多项式(二元)的 次幂,其实是和一元相同的,只不过变成求偏导。令 ,则 ,即 。比较两边系数即可递推出 。
7. [ARC139F] Many Xor Optimization Problems q-binomial 练手好题。
8. P9366 [ICPC2022 Xi'an R] Square Grid 反射容斥好题,二维象棋世界。
9. P9623 [ICPC2020 Nanjing R] Baby's First Suffix Array Problem
怎么说呢,一些看似比较难的数点问题可以用分治轻松化解。
(ucup2-25:13个套路题。)
10. P10256 高仿的 Migos 注意到 之间只有相交或包含关系,由此即可建树计算了。
11. CF1930I Counting is Fun
最难的一步是计算 表示从 出发走到 使 为纵坐标最大值的方案数。
直接套用象棋世界的做法,则 能表示成 的形式,分治计算即可。
(没看 DAY1)
12. JOISC D2T1 分别设计出了 和 的做法然后拼起来。
13. JOISC D2T3 分类讨论题。
14. JOISC D3T2 类似于 ddp 的套路题。
15. JOISC D3T3 是容易的。 时,考虑看成一个无尽的网格图,每行有 个格子。每次可以往下往右走,也可以以 的代价从一行末尾走到下一行开头。这样转化之后问题就挺明了了。这 trick 见过很多遍了,赛时竟没想到,一躺床上就想到了,主要是心理有些浮躁了。
16. JOISC D4T1 根号分治。
17. JOISC D4T2 以 为根,通过 得到 bfs 序,然后每次取还没找到父亲的点中 bfs 序最小的 ,从 开始不断查 ,如果 的 bfs 序在 前面那 ;否则 ,并令 。因为每次查询都确定了一个新的 ,所以只会弄 次就结束了,加上前面的 ,就是 次。
18. JOISC D4T3 首先三元环个数可以转化成 。 的上界显然在 时取到;而下界就是尽量平均地分 。打表可以发现这中间的值都是能取到的,可以通过以下的调整方式完成:令 为 ,从 最平均的状态开始,每次选一个 且 最大的位置,并使 减掉 , 各加 ,显然每次 加上 ,而且可以通过打表发现这样的调整始终满足兰道定理。但这样调整次数会达到 的级别。 优化的方法是,如果 可以 就直接填,递归到 的情况,可以发现这样最后就只需调整 次了。复杂度即 或 。
19. CF1924E Paper Cutting Again
可以看成是将 条切割线任意排序,其中有效线的期望。期望线性性,拆成每条线有效的概率。有效线的话,以 这条线为例,要求 满足 的线都在这条线后面;且为了满足面积 ,需要 满足 的线都在这条线后面。设二者的个数和为 ,则该线有效的概率显然为 。最后加起来就好了。
20. gym104030K Keyboard Queries
维护 表示每个点当前所属联通块的编号,同时维护 的反串 ,每次新加入回文串时利用 哈希+BIT 求出 和 的 lcp,这样我们每次都会连一条新的有效边,单次复杂度 ,总共 。合并两个联通块时启发式合并即可,有 次对 的修改,复杂度仍是 的。查询就是直接哈希判断。
21. gym103860I Reverse LIS
至多 次操作后的最大 LIS 可以转化成:取一个最长的子序列,使得其操作至多 次后能变成 。可以发现这只和连续段个数以及开头连续段类别有关。于是考虑记 表示考虑了 ,当前有 个连续段以及开头末尾的状态,子序列的最大长度。但这是 的,考虑优化。注意到这个 dp 是凸的,即 是凸的。于是我们在线段树上进行 dp,对于每个节点 记下来 ,定义和上面是类似的。合并左右端点就是闵可夫斯基和一下,复杂度 ,常数较大。
22. gym103428C Assign or Multiply
先求出 的原根,转化成一个模意义下的 01 背包问题。
每次加入一个物品,需要找到所有 和 的位置。直接找是困难的,但我们注意到, 且 的位置数量是相等的!理由是 形成了若干个环,每个环上 个数和 个数一定相同。
于是把 复制两份,找出 和 中所有不相同的位置即可。BIT 维护哈希数组,每次二分算 lcp 即可,复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?