#H1028. 「MCOI-04」Dream and Strings
「MCOI-04」Dream and Strings
题目描述
Tommy 的加密系统用了如下的字符串哈希算法:
int Hash(std::string s, int base, int mod) {
int result = 0;
for(int i=0; i<s.length(); i++)
result = (1ll * result * base + s[i]) % mod;
return result;
}
其中 和 是给定参数,满足 ,并且 是一个质数。
现在 Dream 要破解 Tommy 的密文,先需要找到一个适合的哈希碰撞。给定 ,,和一个字符串 ,请找一个一样长度的字符串 使得 ,,但是 和 有至少一个位置不同。
如果有多个合法的 ,输出任意一个即可。
输入格式
第一行,两个正整数 和 。
第二行,一个由小写字母组成的字符串 。
输出格式
一行,一个由小写字母组成的字符串 ,表示答案。
257 997
aabdccbabdcdcadbcabcabaabdbbddbaabcadabcbcdacbbaac
lmzaeccihyailccmzzaxshssgbvjvhthllyofzudraatifnzxy
说明/提示
数据规模与约定
如果 是一个字符串, 是它的长度。
对于前 的数据,。
对于前 的数据, 并且 随机。
对于 的数据,,, 是一个质数。
说明
Minecraft OI Round 4 D
idea & solution:w33z8kqrqk8zzzx33 check:MatKave