当前位置: 代码迷 >> 综合 >> HACKING
  详细解决方案

HACKING

热度:88   发布时间:2023-12-25 04:23:38.0

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;
}