loj#P6758. Hash Killer 1.1
Hash Killer 1.1
题目描述
小 Z 近日学会了字符串哈希,他用 C++ 写了如下的哈希函数。
typedef __int128 bi;
bi hash(std::string s) {
bi v = 0;
for (char c : s) v = (v * B + c) % M;
return v;
}
形式化地,字符串 的 hash 值为 ,这里的 即各位的 ascii 码。例如,当 , 时,。
你认为这个哈希方法非常脆弱,于是打算卡掉它。对于给定的三个整数 、、,请构造出一个长度不超过 的由小写字母组成的非空字符串,使得它使用如上函数算出的哈希值为 。
输入格式
一行三个整数,、、。
输出格式
一行一个由小写字母组成的非空字符串,长度不超过 。如有多解,可以输出任意一个。
200 100000000000000003 1234567890
aadffikdnakjaoaicmibmommolegeifpyanglichuan
数据范围与提示
对于所有数据, 在 中均匀随机生成。 的生成方法为,随机生成一个长度为 的由小写字母组成的字符串,计算它的哈希值作为 ,因此解一定存在。
本题共有 个子任务,每个子任务恰有 个测试点。子任务的得分为每个测试点得分之和,每个子任务内每个测试点分值相同。
Subtask ( pts): 为 范围内的随机质数。
Subtask ( pts): 为 范围内的随机质数。
Subtask ( pts): 为 范围内的随机质数。