| 问题描述 | 
|---|
众所周知,字符串哈希是一种常用的快速字符串检索办法,但是哈希碰撞是不可避免的问题所在,因此给你一个字符串s和模数p,请你找出一个与s同等哈希值同等长度但不等于s的字符串(保证结果一定存在,如果有多个请输出字典序最小的那个) 以下是哈希函数 typedef long long ll;
ll shash(string s, ll p)
{
    ll res = 0;
    for (int i = 0; i < s.length();i++)
    {
        res = res * 26 % p;
        res = (res + s[i] - 'a') % p;
    }
    return res;
} | 
                        
| 输入描述 | 
多组样例T(T <= 100) 每组样例输入一个字符串s(仅有小写字母组成)和正整数p s的长度不超过1e4,2 <= p <= 1e12 T组样例字符串长度之和不超过1e5  | 
                        
| 输出描述 | 
针对每组样例输出一个符合答案的字符串并换行  | 
                        
| 样例输入复制样例 | 
2 abc 100 gcd 10086  | 
                        
| 样例输出 | 
aey vab  | 
                        
| 提示说明 | 
abc哈希后的值为(0*26*26+1*26+2)%100=28,aey哈希后的值为(0*26*26+4*26+24)%100=28 gcd哈希后的值为4111,vab哈希后的值也同样是4111  | 
                        
| 相关 |