闲话 22.12.30

闲话

问个问题 假设我想求 \([x^k]F_{n}(x)\)\(F\) 满足

image

该咋办?有人会用 Mathematica 等数学工具求解也行(

今日推歌:Toa - Stained Nocturne - ft.镜音铃, 初音未来
很宁静的一首歌。

感觉我比较适合听一些比较平和的歌(
也不是非得什么钢琴曲,CH4NGE 这类的歌我也摇得很开心(
但是我不喜欢那种 bpm 过分高的曲子(好我就不讲什么措辞了
也不是很能接受为了表现力在歌里加入嘶吼啥的元素的歌
要举例子的话大概是 wotaku 的 snooze 和 john 的 錠剤
大概我喜欢听的歌里一点都不能有
不理解不理解
话说网易云音乐说我 BPM92(

旧的杂题

其实是因为真没东西可写了
线性规划我做完题了 心愿已了(感谢 skyh 的场外支援!
多项式一点都不会 化式子也化不动 摆一会儿再说

谢特

定义这个字符串以第 \(i\) 个字符开头的后缀为后缀 \(i\) (编号从 \(1\) 开始),每个后缀 \(i\) 都有一个权值 \(w_i\) ,同时定义两个后缀 \(i,j (i\ne j)\) 的贡献为它们的最长公共前缀长度加上它们权值的异或和,也就是 \(\mathrm{LCP}(i,j)+(w_i \mathbin{\text{xor}} w_j)\) 。而你的任务就是,求出这个字符串的所有后缀两两之间贡献的最大值。

\(n\le 10^5, \ w_i < n\)

考虑在后缀链接树上刻画 LCP。我们建出反串的 SAM,提取后缀链接树,在树上考虑贡献。

我们发现一个点的贡献是点的深度加子树内权值两两异或的最大值。
维护异或最大值考虑用 Trie,但是每个点都开一棵的空间需求太大。考虑 dsu on tree,空间复杂度变成 \(O(n\log n)\)。过程中维护一个变量和镜像,扫完轻子树后回滚即可。

总时间复杂度 \(O(n\log^2 n)\)

Submission.



事情的相似度

给一个 01 串。\(q\) 次询问右端点落在 \([l,r]\) 段内的前缀两两之间 LCP 的最大值。

考虑找到一个区间内点后缀链接树上 LCA 的深度,其中最大的就是答案。

我们将询问离线,按深度从大到小枚举 LCA,如果存在一个询问包含 LCA 不同子树内的节点,则这个询问的答案就是这个 LCA 的深度。然后这个暴力可以 \(O(nm)\)。我们考虑暴力是如何的过程。

我们在每个节点保存包含该位置的所有询问对应的集合,每次向上跳合并集合。如果存在两个儿子对应的集合有交,则交集内的询问的答案就是这个节点。更新完答案的询问删除,这样只考虑算更新答案的复杂度是 \(O(m)\)

我们发现这个可以采用 bitset 优化。空间炸了。那就拆成两部分分别做。

总时间复杂度 \(O(nm / w)\)

正解是 LCT + BIT。支持强制在线。

Submission.



跑步

任意模数整数分拆数。

\(1\le n\le 10^5\)

做法借助五边形数定理。五边形数定理给出了一个欧拉函数的展开形式,并由欧拉函数的倒数是分拆数的生成函数,我们得到了分拆数生成函数的表达:

\[\sum_{i=0}^{\infty}p(i)x^i = \left(\sum_{i=0}^{\infty}(-1)^i x^{k(3k\pm 1) / 2}\right)^{-1} \]

有一种基于 Ferrers 图的构造法:OI-Wiki

随后即可得到 \(O(n\log n)\) 的做法。为啥这题的题解里全是 \(O(n \sqrt n)\)

Submission.

完结撒水!

posted @ 2022-12-30 21:56  joke3579  阅读(60)  评论(2编辑  收藏  举报