ababaaabbbbbbbaabaaaaababababbaaabbaabaabaabaaabbaaababbbabbaababbaabbababbaabbaaabbabbbaaaabaabbbaa
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#20466 | #1059. 1-07E. JM的模板题 | Accepted | 100 | 6103 ms | 124660 K | C++ / 2.1 K | q3540555 | 2019-07-22 15:25:47 |
#include <map>
#include <set>
#include <ctime>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <functional>
#define spause() system("pause")
using namespace std;
typedef long long llong;
typedef unsigned long long ullong;
typedef pair<int, int> prdd;
typedef map<int, int> mpdd;
const int dinf = 0x7fffffff;
const llong llinf = 0x7fffffffffffffff;
const int p = 998244353;
llong starttime;
struct sgtrie {
int num = 0, fail = 0, match = 0, sve = 0;
int nexts[26] = { 0 };
};
vector<sgtrie> trie;
string txt, mode;
int nom, tid = 0;
void bldac() {
queue<int> q;
q.push(0);
while (!q.empty()) {
int t = q.front();
q.pop();
for (int i = 0; i < 26; i++) {
int cur = trie.at(t).nexts[i];
if (cur) {
q.push(cur);
if (t)
trie.at(cur).fail = trie.at(trie.at(t).fail).nexts[i];
else
trie.at(cur).fail = 0;
trie.at(cur).match = trie.at(cur).num ? cur : trie.at(trie.at(cur).fail).match;
trie.at(cur).sve = trie.at(cur).num + trie.at(trie.at(cur).fail).sve;
} else
trie.at(t).nexts[i] = trie.at(trie.at(t).fail).nexts[i];
}
}
}
int search(string s) {
int ret = 0, cur = 0;
for (int i = 0; i < s.length(); i++) {
cur = trie.at(cur).nexts[s.at(i) - 'a'];
ret += trie.at(cur).sve;
}
return ret;
}
int main() {
cin.sync_with_stdio(false);
cin.tie(0);
cin >> txt >> nom;
// cout << txt.length() << endl;
starttime = clock();
trie.push_back(sgtrie());
for (int i = 0; i < nom; i++) {
cin >> mode;
int nwid = 0;
for (int j = 0; j < mode.length(); j++)
if (trie.at(nwid).nexts[mode.at(j) - 'a'])
nwid = trie.at(nwid).nexts[mode.at(j) - 'a'];
else {
trie.push_back(sgtrie());
trie.at(nwid).nexts[mode.at(j) - 'a'] = ++tid;
nwid = tid;
}
trie.at(nwid).num++;
}
bldac();
int ans = search(txt);
// cout << "\nDebug Info: " << clock() - starttime << " ms passed!\n";
printf("%d", ans);
spause();
return 0;
}
ababaaabbbbbbbaabaaaaababababbaaabbaabaabaabaaabbaaababbbabbaababbaabbababbaabbaaabbabbbaaaabaabbbaa
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
bbaaaabaaaabbbbaaabbbbabbaaabaaabbbbbaaabababaabbbaaabbabaaaababaaabababbabaaababbbabbabababaaaababb
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
ababbbaaaababbababaaabbbbabbaabaabbaaababbabbbaaaaaabababbbbabaababaabaaaaaabbbabbabbbbbbbbabbababba
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
bbbbbabbaaabbaaabbabbbabbbabbabaaababbaaabaaabababbaaaabbaaabbbbbbbabbabaabbaabbabababaaaaababbabaaa
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
abaaaaaabbaaaaabaabaabbaaaaabbbbbaababbaaabbaaababbbbaaaaaaaaaaabaababbabbbbaaaaababbbbbbaabbbbabbab
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
babbbbbabbaabbbbabbbababbaaabaabaaabaabbaabbbabbbaaabbbabbbbbbbabbbabaabbbbabbbababaaaabbababaababaa
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
baaaaaaaaabaabbbbbbabababbaabaababbbaababbbbabaabababaabbabaabaabbaaaabaaabbabaabbbbbbabababbbbbbabb
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
baababbbbbbbbaaabbbbbbbbbabbaabbaaaaabababbbbbabbbababaaaaabababbbaababaaaabbbababababbaabbaabbabbab
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
abbbbaabbbbbaabbaaabaaabbbbabbbaaabbbbaaababbbbbbabbaaababaaaaaaabaabbbaaabbbaabbbabbbbabbbbbaababba
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
aaababbbaabbabaaaababbabaaabaabbaabbbbbbbaababbabbbaaababbaabbaaabbabababbaabaaabaaababaaaaaabbabbba
<2000107 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
cbedbecbbaacaaedadbaaadebacdcdeaebdeaeccaeccedcddadcaeddadcedebeadeeebabeebadaeeccabaececebdabcdcbbe
<2199910 bytes omitted>
用户输出
10266
系统信息
Exited with return code 0
caacebdeebebecebcabecedeccdcacaaadeddaddbebeddecaddcebdeaababaebadbbebacdabccdcbdbabdadaeccdecbcccde
<2199910 bytes omitted>
用户输出
10165
系统信息
Exited with return code 0
ecacbcbaccbacdedebaebeabaaeabccbedaaceaaeabbbcbbacadbbadeceacbdbdebadcdabcdeeebaaedaaacacebbccecaddb
<2199910 bytes omitted>
用户输出
10003
系统信息
Exited with return code 0
dbcdaaebbadbddcebebbbcaabebbadbaeddeadcccddedbabcdbdeebbebbbdaecdadedcaaabedcecbdcdbadbeabeaebcceccb
<2199910 bytes omitted>
用户输出
10297
系统信息
Exited with return code 0
eddecaacdbacbedaaaecacecdaedbdcbcaeeddedaacbecbabcbababcbddbabbbaccebcbbecdadadcbeabbdadabbdecdeacee
<2199910 bytes omitted>
用户输出
10355
系统信息
Exited with return code 0
cdacecdebdabeeedddadbdaabbdecaeaabebaaacdcccddebbeeaecdedcacbaabedccdececbdbbcdedbeaccbeaeeebdaaaceb
<2199910 bytes omitted>
用户输出
10238
系统信息
Exited with return code 0
cddbdacadcdcdeebcbedaeaeaabbbedabecddeaecededdeddddeececadceabcdcbedeccbeeaccbccaeeddaecccbeaedebeba
<2199910 bytes omitted>
用户输出
10314
系统信息
Exited with return code 0
ecdceedcbcbdbccbccbbeeeceeedcaaeebecceaaecacbacdcdebbceaecddacaadeeedbbeacdbdccccbeaebeaacbdcdecaacd
<2199910 bytes omitted>
用户输出
10392
系统信息
Exited with return code 0
adeedbeeccaadcebededeadbbbddebdcbcabcbaaddaccdddddeebdeccdedbdbcccebcbdbbcbdcbeeacdbaaebdebadbdaecad
<2199910 bytes omitted>
用户输出
10195
系统信息
Exited with return code 0
abcacbdccbdaeebbccbbdadacaebceebdacbbcccebdcbacddbabaeccdbcbeeecddeddacabadbbbceeadbaabbcdeedeadcedd
<2199910 bytes omitted>
用户输出
10374
系统信息
Exited with return code 0
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0
pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
<1502408 bytes omitted>
用户输出
999500500
系统信息
Exited with return code 0