「赛后总结」暑假 CSP 模拟赛系列 1(7.28~7.31)
「赛后总结」暑假 CSP 模拟赛系列 1(7.28~7.31)
点击查看目录
啥也不会。
对于我这种低水平选手来说补完所有题是比较困难的,写完所有题解更是困难,所以打算只写个人认为比较有意义的题。
都是校内题库的链接。
有 CF/AT 的 submission 的话会考虑直接放提交记录以减少文章长度。
20230728(fengwu round)
感谢彭师傅不斩之恩,做了一圈就彭师傅的最简单。
T3 Count Multiset
题解通道关了
但是:
赛时爆标了。
首先为了方便,先不考虑相同元素出现次数的限制。
我们设 表示当前填了 个数,总和为 的方案数。
考虑一种奇妙的转移方式:
- 向当前序列里加上一个 ,即从 转移过来。
- 将当前序列全部加 ,即从 转移过来。
第一种操作的例子是序列 2 2 3
加上一个 0
得到 0 2 2 3
,由 转移到 ;第二种操作的例子是 0 0 1 2
整体加 变为 1 1 2 3
,由 转移到 。
接下来开始考虑相同元素出现次数的限制。
既然有限制就不能随意加零,那么第一种操作贡献就应该是 ,但是我们不知道之前的 有几个零,这样就不能直接转移。
考虑设一个辅助的 表示当前填了 个数,总和为 且 序列里不含有 的方案数。
很好转移,就是整体加一的情况,从 转移过来。
用这个可以很方便地转移 的第一种操作,即 。
总结一下转移方程:
考虑前缀和优化, 解决。
T4 Julia the snail
有空写一下吉司机线段树学习笔记。
离线。我们设 表示当前以 为左端点的区间的答案,不断移动右端点。
考虑将右端点从 移动到 会有什么影响。
假设 是以 为右端点的线段的左端点,影响显然是对于 中所有满足 的 ,令其 。
发现是比较后赋值。吉司机线段树,启动!
20230730(ZZ作者 round)
T3 数组
观察欧拉函数式子:
那么我们要维护的就是区间积和区间积的质因数。前者随便维护,考虑后者。
观察数据范围,值域在 300 以内,300 以内恰好有 62 个质因数,考虑状压到一个 long long
里边即可。
预处理逆元和每个数的质因数状态会跑的飞快。
T4 树
根号分治典中典!
步长 小于 的话考虑树上差分,预处理出来节点 步长为 时走到根经过的点的权值和。
否则直接暴力跳,有人用长链剖分啊但其实没必要,你先一直跳 级祖先最后跳 级祖先就行。
复杂度 。
20230731(Max_QAQ round)
什么 Cu 的教训。
T3 U
Rolling_star 好强,/bx
观察发现对于 的期望相当于 的期望乘上 ,于是只考虑计算 的情况。
首先我们使用经典 trick 边权化点权,然后考虑经过一个点 产生的贡献。
约定 表示 的点权, 表示 子树大小, 表示 到根, 表示 子树内可以选的点的个数(即到 的路径上没有点权与 相同的点)。
比较好算, 初始为 ,然后对于每个 都会对 产生 的贡献。
预处理完后发现 即是答案,但是发现根没有权值,所以对于 这种情况无法计算。
考虑设 表示当根权值为 时的 ,那么 的点 来说,其贡献为 。
好了。
T4 E
?什么离谱题?
你观察数据范围发现数据随机,于是你考虑瞎写。
线段树维护,每个节点维护其代表的区间的宝石能组成的每种价值,考虑使用 vector
和 pair
维护每个区间。
查询/向父亲合并时遍历两个 vector
,对原有的价值区间和新组合出来的价值区间去重。
理论上随便卡卡就会 TLE/MLE,但是出题人的随机数据成功把复杂度降到了 。
本文作者:K8He
本文链接:https://www.cnblogs.com/K8He/p/contest-20230728-to-0731.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步