This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub beet-aizu/library
#ifndef call_from_test #include<bits/stdc++.h> using namespace std; #define call_from_test #include "trie.cpp" #undef call_from_test #endif //BEGIN CUT HERE template<size_t X, bool heavy> struct AhoCorasick : Trie<X+1>{ using super = Trie<X+1>; using super::super, super::next, super::size; using super::vs, super::conv; vector<int> cnt,ord; // O(\sigma \sum |T_i|) void build(){ int n=vs.size(); cnt.resize(n); for(int i=0;i<n;i++){ if(heavy) sort(vs[i].idxs.begin(),vs[i].idxs.end()); cnt[i]=vs[i].idxs.size(); } queue<int> que; for(int i=0;i<(int)X;i++){ if(~next(0,i)){ next(next(0,i),X)=0; que.emplace(next(0,i)); }else{ next(0,i)=0; } } while(!que.empty()){ ord.emplace_back(que.front()); auto &x=vs[que.front()]; int fail=x.nxt[X]; cnt[que.front()]+=cnt[fail]; que.pop(); for(int i=0;i<(int)X;i++){ int &nx=x.nxt[i]; if(nx<0){ nx=next(fail,i); continue; } que.emplace(nx); next(nx,X)=next(fail,i); if(heavy){ auto &idx=vs[nx].idxs; auto &idy=vs[next(fail,i)].idxs; vector<int> idz; set_union(idx.begin(),idx.end(), idy.begin(),idy.end(), back_inserter(idz)); idx=idz; } } } reverse(ord.begin(),ord.end()); } int count(int pos){ return cnt[pos]; } // O(|S|) long long match(string s){ long long res=0; int pos=0; for(auto &c:s){ pos=next(pos,conv(c)); res+=count(pos); } return res; } // O(|S| + \sum |T_i|) vector<int> frequency(string s){ vector<int> res(size(),0); int pos=0; for(auto &c:s){ pos=next(pos,conv(c)); res[pos]++; } for(int p:ord) res[vs[p].nxt[X]]+=res[p]; return res; } }; //END CUT HERE #ifndef call_from_test signed main(){ return 0; } #endif
Traceback (most recent call last): File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle bundler.update(path) File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 400, in update raise BundleErrorAt(path, i + 1, "unable to process #include in #if / #ifdef / #ifndef other than include guards") onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: string/ahocorasick.cpp: line 6: unable to process #include in #if / #ifdef / #ifndef other than include guards