P12198 Hash Killer II

· · 题解

刚开始读不懂题很合理(本蒟蒻也是问了“机房大佬”才知道的),给他简化一下题面就是想让你找数据,卡掉他的进制就行了,其实很简单,只需要造几组大数据就可以了。

在此之前,我们先引入一个悖论,就是生日悖论,详情可以去 oiwiki 上搜,这里我就简述一下结论,那就是,如果可以随机选取一列数字,出现重复数字需要的抽样规模的期望是 O(\sqrt n) 的,所以我们把数带进去,就得到了 \sqrt {10 ^ 9 + 7},也就约等于 30000

下面附上蒟蒻的代码

#include <bits/stdc++.h>
#include <cmath>

using namespace std;

int main () {

    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    cout << "100000 100" << '\n';

    for (int i = 1;i <= 100000;i ++) {
        cout << char('a' + rand() % 26);
    }
    return 0;
}

第一次交题解,希望管理大大通过!