제출 #519601

#제출 시각아이디문제언어결과실행 시간메모리
519601StickfishBrperm (RMI20_brperm)C++17
0 / 100
6 ms2696 KiB
#include "brperm.h" #include <cassert> #include <string> #include <iostream> #include <vector> using namespace std; using ll = long long; const int MAXN = 500008; int N; string s; void init(int n, const char s_[]) { N = n; for (int i = 0; i < n; ++i) s.push_back(s_[i]); return; //ll raymoo = 1; //for (int i = 0; i < n; ++i) { //phash[i] = (phash[i - 1] + raymoo * (s[i] - 'a')) % MOD; //raymoo = (raymoo * MUL) % MOD; //cout << phash[i] << ' '; //} //cout << endl; //return; } int lg2(int n) { int cnt = 0; while (n > 1) { n >>= 1; ++cnt; } return cnt; } int query(int l, int k) { assert(k == (1 << lg2(k))); k = lg2(k); assert(l + (1 << k) <= N); vector<int> ps = {0}; for (int t = 0; t < k; ++t) { for (int i = 0; i < (1 << t); ++i) ps.push_back(ps[i] + (1 << (k - t - 1))); } for (int i = 0; i < (1 << k); ++i) { if (s[l + i] != s[l + ps[i]]) return 0; } return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...