Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52566 Scorpio 修复符文 C++ 解答错误 15 33 MS 4504 KB 1289 2022-07-19 13:06:36

Tests(3/20):


#include<bits/stdc++.h> #define int long long using namespace std; const int maxn = 5e5 + 5; const int bse = 131; const int mod = 1e9 + 9; int hash_tar, a, b, mve, len, t; int p[2 * maxn], hash_s[2 * maxn]; string s, r; bool flg; bool check(int l, int r){ if((hash_s[r] - hash_s[l - 1]* p[r - l + 1] % mod+mod)%mod == hash_tar){ return true; } return false; } void sett(){ flg = false; for(int i = 1; i <= len; i++){ hash_s[i] = hash_s[i +len] = 0; } hash_tar = 0; return; } signed main(){ p[0] = 1; cin >> t; while(t--){ cin >> s; cin >> r; cin >> a >> b; len = s.size(); for(int i = 0; i < len; i++){ hash_tar = (hash_tar * bse % mod + r[i]) % mod; } s = s + s; for(int i = 0; i < 2 * len; i++){ hash_s[i + 1] = (hash_s[i] * bse % mod + s[i]) % mod; p[i + 1] = p[i] * bse % mod; } mve = __gcd(abs(a - b), len); for(int i = 0; i <= len / mve; i++){ if(check((i * mve), len + (i * mve) - 1)){ cout << "yes" << endl; flg = true; } if(!flg){ if(check(len - (i * mve), 2 * len - (i * mve))){ cout << "yes" << endl; flg = true; } } if(flg){ break; } } if(!flg){ cout << "no" << endl; } sett(); } return 0; }


测评信息: