版权声明:https://github.com/godspeedcurry 欢迎加好友哦 https://blog.csdn.net/qq_38677814/article/details/82025892
https://vjudge.net/problem/SPOJ-HACKING
生成一个字串不在模式串中 长度有限制,可使用的字母有限制
适合乱搞,比如本代码中的随机
随机当然也要挑合适的地方随机,显然长度越长,碰撞的几率越小,那么我们就用最长长度随机
见代码
#include <bits/stdc++.h>
using namespace std;
int cnt;
std::map<string, int> mymap;
void solve(){
srand(time(NULL));
int k,n,m;
cin>>n>>m>>k;
string s;
cin>>s;
mymap.clear();
for(int i=0;i<s.size();i++){
string temp=s.substr(i,m);
mymap[temp]++;
}
while(1){
string ans;
for(int i=0;i<m;i++){
ans+='a'+rand()%k;
}
if(mymap.find(ans)==mymap.end()){
cout<<ans<<endl;
return;
}
}
}
int main(){
int t;cin>>t;
while(t--){
solve();
}
return 0;
}