1 条题解
-
0
自动搬运
来自洛谷,原作者为

WorldMachine
请引领我至夜晚熠熠闪烁的群星之下搬运于
2025-08-24 23:13:38,当前版本为作者最后更新于2025-04-16 15:56:32,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
我赌他没卡我的自然溢出。
对于 为偶数的情况,只要串够长 就变成 了。
对于奇数的情况,Thue Morse 序列可以让它爆炸。
对于二进制串 ,定义 为按位翻转后的串。令 阶 Thue Morse 序列 ,,有 $\text{hash}(t_n)=b^{2^{n-1}}\text{hash}(t_{n-1})+\text{hash}(\overline{t_{n-1}})$,$\text{hash}(\overline{t_n})=b^{2^{n-1}}\text{hash}(\overline{t_{n-1}})+\text{hash}(t_{n-1})$,记 ,有 。
由于 $b^{2^{n-1}}-1=(b-1)(b^{2^{n-2}}+1)(b^{2^{n-3}}+1)\dots(b+1)$,而 是奇数,那么每一项都是偶数,故 ,那么 ,对于 ,,自然溢出就爆炸了。
那么输出长度为 的 Thue Morse 序列即可。
#include <bits/stdc++.h> using namespace std; int main() { int n = 1 << 11, l = n >> 1; printf("%d %d\n", n, l); for (int i = 0; i < n; i++) putchar('a' + (__builtin_popcount(i) & 1)); }
- 1
信息
- ID
- 12050
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 4
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者