周做题记录 #1
CF1083C Max Mex
Analysis
考虑怎么做单组,可以直接
考虑用线段树维护这个东西,
CF1749E Cactus Wall
Analysis
发现因为相邻的不能同时染,所以给棋盘黑白染色之后黑白是独立的,也就是说不存在黑墙和白墙连在一起。所以可以 DP 墙,不过拍一下发现 DP 炸了,需要写个最短路,然后就好了。
Solution
发现这东西实际上要求一个平面图最小割,只不过不能用一般的最小割模型来刻画限制,上面最短路实际上是在对偶图上面跑的,可以这么理解。
P8349 [SDOI/SXOI2022] 整数序列
Analysis
枚举了一堆根号结论……
首先可以想到一个暴力,找到两个元素的位置,把它们归并,然后
然后发现这个东西的复杂度是
考虑根号分治,小块和小块之间复杂度不超过根号,大块之间因为数量少总复杂度也不超过根号,唯一的问题是小块和大块之间。考虑大块的话,只有数量上的性质,不好处理。考虑小块,小块的结论是元素数不超过
Solution
其实有一个直觉:对于大块来说,有用的点不会很多。但是我没有尝试证明或者证伪这个结论,觉得一眼假就弃了,其实可以考虑一个证明:考虑只有一个数的情况,有用的只有它前面和后面的元素,两个数的话,那就加上这个数前面和后面各一个没选的数。最后元素总数是
Conclusion
其实度过了靠套路做题的阶段,题目的难点主要就在于对性质的发掘和对模型的转化了,直觉是其中重要的一环,如果有直觉可以不要着急否定,先尝试严谨证明;多做题积累直觉。
CF671D Roads in Yusland
Analysis
线段树合并板子。
Solution
开始考虑过最小割,但是没想到用线性规划模型刻画,毕竟网络流是线性规划的子集,网络流遇到了一些问题可以考虑线性规划刻画。
假设
假设前面对偶变量是
发现
考虑将
这个的话,从小到上贪心能选即选即可,用左偏树维护路径。
P8123 [BalticOI 2021 Day1] Inside information
Analysis
终于来补这题了吗。
给树上的每条边赋一个权值
- 查询
的有向路径上边权是否递增,且最大权值不超过给定值 。 - 查询有多少个点满足如上条件。
对于第一个,由于是路径,点分转化。对于第二个,由于是联通块,点分转化。
所以我们就把询问挂到了根上。写一下合法条件发现就是二维偏序,扫描线做到
P5296 [北京省选集训2019]生成树计数
Analysis
肯定是矩阵树,考虑怎么转化为边权乘积。
考虑要维护的东西:
猜测和
P8352 [SDOI/SXOI2022] 小 N 的独立集
Analysis
考虑普通的最大权独立集怎么求,然后就一脸 DP of DP 的样子。设
UVA1364 Knights of the Round Table
Description
给定一张无向图,找出所有点,满足它至少在一个简单奇环中出现。
Analysis
我直接找生成树然后树上差分过了,怪。
Solution
图上简单环问题考虑点双是不错的选择,因为点双满足一个优秀的性质:对于每两个点
P3296 [SDOI2013]刺客信条
Description
给定一棵树和两个
Analysis
首先找到一个简单的转述:对于排列
尝试找到
KM 学一遍忘一遍。
P4365 [九省联考 2018] 秘密袭击 coat
现在才来补??
题目让我们求这个式子:
考虑每个
这个 DP 没有优化的前途了,考虑差分式子,具体地,将
考虑针对
考虑优化,先忽略枚举
直接维护多项式太慢了,考虑插值维护点值。那么只需要维护向量
- 区间乘法,全局加法。
- 向量点积。
使用线段树合并可以维护。注意这里的线段树需要处理
Conclusion
涉及的技巧比较多,包括差分,维护点值等等。
以后每周要 vp 至少一场 +
P5307 [COCI2018-2019#6] Mobitel
Analysis
定义
CF1268D Invertation in Tournament
Analysis
首先竞赛图缩点之后是一条链状结构,在链上考虑。手玩一下,发现如果有至少三个强连通分量,那么在中间随便找一个翻转就变成强连通分量了。那么只要考虑两个强连通分量的情况,继续手玩,发现如果其中一个存在长度为
Solution
首先有结论,任意
现在只需要考虑怎么快速判断翻转之后是否为强联通竞赛图即可。使用兰道定理,内容如下:
- 一个有向图为竞赛图,当且仅当它的出度序列
排序后满足 。 - 一个竞赛图为强连通竞赛图,当且仅当其出度序列排序后满足
。
Conclusion
我的思考卡在了猜想到如果有长度为
P7126 [Ynoi2008] rdCcot
Solution
如果直接考虑联通块的话,模型的结构过于复杂,难以解决,考虑转化视角,考虑每个等价类内的一个“代表元”。在本题中,我们可以考虑联通块中 bfs 序最小的点,有结论:
- 一个点
为联通块中 bfs 序最小的点,当且仅当不存在 bfs 序更小的点 ,使得 能直接到 。
充分性显然,考虑必要性。先证明一个引理:若存在链
所以考虑
vector 存图 TLE 换成链式前向星过了,离谱。
Conclusion
计数等价类数量,钦定代表元的思路,以及 BFS 序的性质。
有些时候原问题会较为复杂,但是转化视角和模型之后,问题便变得简单。WC2022 T1 也是一个例子,将视角由阶梯方格转到轮廓线之后,“边缘格子”就得到了更好的刻画。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】