用户输出
2
1 2
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#8534 | #1058. JM的荧光棒工厂 | Accepted | 100 | 153 ms | 2160 K | C++ 11 / 1.0 K | JM233333 | 2019-07-01 22:41:13 |
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
void make_fail(char *mode);
const int MAX = 2e5 + 5;
char str[MAX];
int fail[MAX];
vector<int> res;
int main() {
// freopen("test.txt", "r", stdin);
while (scanf("%s", str) != EOF) {
// 初始化
res.clear();
// 求fail数组
make_fail(str);
// 递推求所有公共前后缀
int j = strlen(str);
j = fail[j - 1];
while (j > 0) {
res.push_back(j);
j = fail[j - 1];
}
reverse(res.begin(), res.end());
// 输出
printf("%d\n", res.size());
for (int i = 0; i < res.size(); i++) {
printf("%d", res[i]);
printf(i == res.size() - 1 ? "\n" : " ");
}
}
return 0;
}
// 计算fail数组
void make_fail(char *mode) {
// 初始化
fail[0] = 0;
// 递推
for (int i = 1, j = 0; mode[i] != '\0'; i++) {
while (j > 0 && mode[i] != mode[j]) {
j = fail[j - 1];
}
if (mode[i] == mode[j]) {
fail[i] = ++j;
} else {
fail[i] = 0;
}
}
}
用户输出
11
1 2 3 4 5 6 7 8 9 10 11
系统信息
Exited with return code 0
用户输出
7
7 14 21 28 35 42 49
系统信息
Exited with return code 0
用户输出
5
1 3 5 16 27
系统信息
Exited with return code 0
用户输出
4
1 7 13 19
系统信息
Exited with return code 0
用户输出
1
2
系统信息
Exited with return code 0
用户输出
2
2 8
系统信息
Exited with return code 0
abababababababababababababababababababababababababababababababababababababababababababababababababab
<199902 bytes omitted>
99999
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 6
<644351 bytes omitted>
用户输出
99999
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84
<644321 bytes omitted>
系统信息
Exited with return code 0
abbbbbbbbbabbbbbabbbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbabbbbbbbabbbbabbbbabbbabababbbbbbabbabbbbbbb
<199653 bytes omitted>
用户输出
1
53
系统信息
Exited with return code 0
utututututututututututututututututututututututututututututututututututututututututututututututututut
<199901 bytes omitted>
99999
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65
<644346 bytes omitted>
用户输出
99999
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 8
<644316 bytes omitted>
系统信息
Exited with return code 0
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
<199902 bytes omitted>
199999
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
<1288797 bytes omitted>
用户输出
199999
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 4
<1288767 bytes omitted>
系统信息
Exited with return code 0
axysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxysaxys
<199902 bytes omitted>
49999
4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120
<322128 bytes omitted>
用户输出
49999
4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148
<322098 bytes omitted>
系统信息
Exited with return code 0