BZOJ-3097: Hash Killer I

[文章目录]

Description

让你构造卡一个单base自然溢出的hash的数据。

膜神犇vfleaking。 神犇题解
个人没有想到让hash值每次变成相反数使得倍增后能使2的幂数等差数列。 我还是太菜了。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char s[100010];
int n,l;
int main()
{
    n=1; s[0]='a';
    for(int i=0;i<12;++i)
    {
        for(int j=0;j<n;++j)
            s[n+j]=(s[j]=='a')?'b':'a';
        n<<=1;
    }
    l=n>>1;
    for(int i=1;i<=l;++i) s[n++]='a';
    s[n++]='b';
    for(int i=1;i<l;++i) s[n++]='a';
    printf("%d %d\n%s",n,l,s);
    return 0;
}

发表评论

邮箱地址不会被公开。 必填项已用*标注