牛客小白月赛35 G.反·反爬虫函数(随机....)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客小白月赛35 G.反·反爬虫函数(随机....)相关的知识,希望对你有一定的参考价值。
随机一下发现这个函数生成的是非常随机的
于是只需要暴力预处理即可
#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;
const int maxn = 3e5+10;
int n,vis[maxn];
mt19937 rnd(time(0));
char a[maxn],ans[maxn][10];
int calculatetta(char* a)
{
int b = 0;
for (int c = 0; c < strlen(a); ++c)
{
b = (b + (c + 1) * (c + 2) * a[c]) % 1009;
if (c % 3 == 0) ++b;
if (c % 2 == 0) b *= 2;
if (c > 0) b -= ((int) (a[c / 2] / 2)) * (b % 5);
while (b < 0) b += 1009;
while (b >= 1009) b -= 1009;
}
return b;
}
int main()
{
int t,res = 0; cin >> t;
while( res<=1000000 )
{
res++;
for(int i=0;i<8;i++) a[i] = rnd()%26+'A';
int x = calculatetta( a );
if( vis[x] ) continue;
vis[x] = 1;
for(int i=0;i<8;i++) ans[x][i] = a[i];
}
while( t-- )
{
cin >> n;
if( n>=1009 || vis[n]==0 ) cout << -1 << endl;
else
{
for(int i=0;i<8;i++) cout << ans[n][i];
cout << endl;
}
}
}
以上是关于牛客小白月赛35 G.反·反爬虫函数(随机....)的主要内容,如果未能解决你的问题,请参考以下文章