《NOI Online 2021 提高组 愤怒的小 N》
虽然可以看出 b
就是 为奇数的数,但我们不用想这么多。
一个集合 的 是 ,因为此时 。包括我们所熟悉的,求 ,维护 可求,本质上就是 罢了。
闲话多说了些。接下来直接开搞。记 为 内 的数的集合的 ,也就是 a
的那些关卡;同理可记 。根据题目直接有
我们讨厌 “换手搓背”,我们希望独立递推,也许进而可知通解——矩阵对角化。
也就是
前者就不说了,根据定义 ,即自然数幂和的 ,直接用等比数列公式化简即可。而初值 使我们知道
这看上去挺丑陋,且需要暴力多项式乘法。正当无奈之时,忽然发见 没有常数项!这说明 时,在我们所需的 范围内 。意外之喜。
再根据 “整体加是乘法”,可见 时 ,而右式是已经解决的问题。因此,我们只需要解决 到 这一小部分关卡的答案。这个问题近似于 到 的问题,只不过最后要乘一个 罢了。
用最普通的方法:枚举 ,剩余部分是 。预处理 。乘法暴力做,复杂度 。代码就去看兔兔的咯。
《HDU6593 Coefficient》
可以换元 ,因此我们就假定 吧。
根据 ,可以想到接下来的形式必然是 。系数的变化规律是
是统一的,可忽略之,最后答案乘 。初值 。最后的答案就是 。
考虑系数的 “移动”(因为是线性变换),可见路径权值是 ,其中 且 ,贡献到 。这就可以用 轻易描述了:
我不熟悉它,所以我没能指出: 是 第二类斯特林数 在第 列上的 。其实想想 不就是每次要么放进新盒子、要么放进已有的盒子,第二类斯特林数吗!
“你看到的只是表象。” —— 太阳神
因此 即得。用斯特林数在第 行上的 去算即可。
再或者,我们可以换一种刺杀的方式。直接从生成函数的角度考虑它,答案就是
吸取 “” 的经验,只需把 展开成
我们先算出
Remark:把 去掉后,其实 就是第二类斯特林数在第 列上的 。因此我们得到的也就是第二类斯特林数在第 行上的 。
直接得到
系数 是简单卷积,然后对 个 多点求值。复杂度 。
《HDU6355 fireflies》
转最长反链。然后就没辙了。事实上,对于任意多重集 ,设第 种元素有 个。我们有
引理:存在对 进行 “对称链分解” 的方式,使得 的每个子集在恰好一条链中出现。
我们称子集链 是对称链,当且仅当 且 。注意 可能为 ,此时 。
证明:归纳构造。两个我不喜欢的名词。 时 是一条链。然后每次加入 个元素 ,对于原本的对称链 ,可将其变为 条对称链
我承认上面这一大坨有点吓人。可以画图来直观感受它。原本的链就是 ,是 轴上的点,而现在 成为 轴可选值。这个划分方式就是,先从 开始,进行 “无脑搜索”——往上一直走,直到下一个点已走过,然后往右一直走。再从 分别进行 “无脑搜索”。
不难验证其仍为对称链。
注意到,大小为 的子集在每个对称链里都出现了恰好一次。因此,这样的集合的数量就是最长反链的长度(我们构造出了其对应的链覆盖)。
剩下的部分就是折半、容斥。重点其实在于 。
《IOI2021 集训队互测 子集匹配》:设 ,记 。若 满足 则二者之间连边。请构造大小为 的匹配。保证 。
用对称链构造即可。具体实现我不会,很尴尬。
《WC2021 斐波那契》
因此,记 ,也就是第 个斐波那契数(),则题目等价于
不妨换元为
考虑 分离变量,即把 放到一边去。为实现之,我们需要互质性。因此可以同时给 除以 得到
若 则两边同时除以 (该值与 互质,存在逆元),故假定 。再结合最重要的 ,不难发现
于是等式两边和模数再同时除以 得
终于,每个数都与模数互质,可以移项。答案变为
引理:斐波那契数列的循环节长度是 的,其中 是模数。
证明:由通项公式(或者说矩阵对角化),若 和 都出现循环节 则原数列必循环。
对 取模时构成非纯循环,从 开始有长度为 的循环节,不作过多考虑。
首先考虑对奇质数 取模。认为运算在 下进行。
同理 。若 则 就是循环节;否则 ,有 说明
同理 ,因此 是一个循环节。
Lemma. 若 则 。
Proof. 归纳法。前提条件已保证 时成立。然后对 有
上式中 时 ,因此可忽略。
然后考虑对 取模。由 知 ,因此有循环节 ,其中 为上文中 “对 取模” 的循环节。
最后对合数 取模,至少有循环节 ,而 ,因此 。
Remark:这个值究竟是不是 ,存疑。
根据引理,我们可以暴力求解。把询问以三元组 形式放在 的桶里,其中 。最后,对每个 ,以 为模数求斐波那契数列,查询是否有三元组满足 且第三个值为比值。
复杂度最多为 ,其中 为约数和。
“这个算法当初是我自己独立提出的!(叉腰)” —— 傲娇
《AGC021F Trinity》
读者应该能从我的水平推断出:我连 都没写出来。
要往 的方向想,而不是直接 。设 为 列 行的答案,枚举最后一列进行转移。
前者是 时,考虑该列的 数量。后者枚举了 的数量,根据 是否为其中一员,可知方案数为
然后考虑卷积优化,记 则
立刻有 做法。可是我们惊讶地发现,将 看成新变元,则这是 大小的二元生成函数。因此最后得到 是 的,与 无关!
最后答案为 。可以 提取系数。时间复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下