专栏文章
P12197 Hash Killer I 题解
P12197题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minghles
- 此快照首次捕获于
- 2025/12/02 02:01 3 个月前
- 此快照最后确认于
- 2025/12/02 02:01 3 个月前
很有意思的一道题,考虑只用
CPPab 来卡他。当 base 为偶数时,因为是自然溢出即模 ,所以只要长度超过 就可以完美卡掉这个代码。当 base 为奇数时,考虑使用 Thue Morse 序列。这个序列的定义是,第一个字符为 然后不断复制自己然后按位取反加到最后面,比如说这样:0
01
0110
01101001
0110100110010110
当这样重复到一定次数,自然溢出就被卡掉了!
代码:
CPP#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
cout << (1 << 12) << " " << (1 << 11) << endl;
for (int i = 1; i <= (1 << 12); i ++ ) putchar('a' + (__builtin_popcount(i) & 1));
return 0;
}
其中
__builtin_popcount(i) & 1 便是一种生成这个序列第 项的方法。相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...