2023-4-24 #51 这世界 绝对不会只有一个轴心
——ChiliChill《丑马》
307 uoj#698. 【候选队互测2022】枪打出头鸟
异或卷积算法的本质:考察 与 贡献到 的本质,其贡献系数为 ,恰好为 对应的 FWT 系数。
求正交线性基:先将线性基三角化得到 个关键位,直接将线性基除主对角线的部分转置,并令正交线性基剩下的 个位为关键位,复杂度 。
的 构成了正交线性基的张成空间。
线性基求交:( 表示 的正交线性基),复杂度 。
于是这题做法就是,倒着扫描序列做线性基求交,尝试用类似 前缀线性基 的方法记录每个基底最靠前的出现位置,询问直接在正交线性基里搞搞就好了(大概吧)?
308 CF1523H Hopping Around the Array
广告:他是 ISIJ 第一名,也是在线知名题库的洛谷“网红” 。
之前讲过,不过早就不记得了。
一个点进行若干次操作后到达的一定是一个区间,于是想到倍增求出多少步才能跨越过 ,设出 表示从 出发跳 步,删除 个点能到的最远位置,预处理其需要用 ST 表处理区间最值,这里的复杂度是 。
考虑如何处理查询,令 表示删了 个点,我们至多能跳多少步使得不越过 ,转移就从高到低枚举每一位考虑每个 能否塞一个 进去。
这样做空间是 的,离线做就可以做到 的空间。
309 CF1616G Just Add an Edge
首先判掉初始就有一条哈密顿路的情况,手玩可知我们要找到两条链,构成全集的二划分。
更精准的刻画是(假设加入的边是 ):(其中 均只使用 类边)。
不会做啊啊。
由于不存在哈密顿路,一定存在一个 ,因此这两个位置分别属于两条链,容易得知选择连边的两个点 一定满足 。
所有这样的 都必须经过,我们可以从前往后 dp 一下就好了,复杂度 。
310 CF1423G Growing flowers
(破题水)
颜色段均摊处理区间推平,我们只要支持 次整体颜色修改,根据贡献形式,对每个颜色开一棵线段树。
于是我们只用对于每个长为 的白色段,对 的答案造成 的贡献,容易使用线段树维护答案。
复杂度 。
311 CF1508F Optimal Encoding
连出所有有限制的边一定能得到一个合法的 DAG,只需考虑最小化边数而不影响到达关系,但是这是 P6134 [JSOI2015]最小表示,肯定要进一步挖掘性质。
考虑对每条边 算贡献,其出现的一定是段区间,出现时间是第一次被区间包含的时间,消失时间是满足 的 与 第一次共同出现的时间。
假设我们得到了所有可能贡献的边,加入时间是好计算的,无非做一个二位数点状物。删除类似,对于每个 找到其序列里最接近的合法 位置,之后也是一个二位数点。找到这个 位置可以考虑从小往大加数,对于 位置取出所有 ,以及所有 前面第一个小于 的位置(使用链表),扫一遍即可找到每个 对应的 。
事实上可能有贡献的边数量是 级别的,我们跑一遍莫队,每次加删都只会加入 条边,使用回滚莫队+链表可以 找到这些边。
复杂度 。
312 CF1060G Balls and Pockets
看不懂题解,有人教我吗。
😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭
313 uoj#99. 【集训队互测2015】普罗达科特
第一问即要求每个 互不相同,于是考虑使用集合划分容斥,我们以分拆数的复杂度枚举相同情况,并枚举每个连通块大小有多少个为 的约数(假设连通块大小为 , 为每个连通块大小是否为 的约数)。
对于每个素因子考虑,即提取:
我们断言,其 项系数是关于 的 次多项式,于是暴力预处理前若干项插值即可(当然不要在枚举 的时候才预处理)。
314 CF1392I Kevin and Grid
使用欧拉定理,我们只需关心点数,边数,面数(这个较难处理)。
注意到不与边界相邻的连通块一定被一异色连通块包含,事实上一个这样的连通块,会与除了大小为四的正方形以及无限面外其余异色面一一对应。
将答案式子写出来,发现面数抵消了,而点数,边数,大小为四的正方形数均可以卷积处理,复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构