提交记录 3380
| 提交时间 |
评测时间 |
| 2018-07-14 18:29:32 |
2020-07-31 21:16:20 |
#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 8e6, SIGMA = 128; // ascii 0 - 127
struct SuffixArray {
int sa[MAXN + 10], buf[3][MAXN + 10], c[SIGMA + 10], rk[MAXN + 10], height[MAXN + 10];
void build_sa(char *str) {
int n = strlen(str) + 1, m = SIGMA, p = 0;
int *x = buf[0], *y = buf[1];
for(int i = 0; i < m; i++) c[i] = 0;
for(int i = 0; i < n; i++) ++c[x[i] = str[i]];
for(int i = 1; i < m; i++) c[i] += c[i-1];
for(int i = n-1; i >= 0; i--) sa[--c[x[i]]] = i;
for(int k = 1; k <= n; k <<= 1) {
p = 0;
for(int i = n-k; i < n; i++) y[p++] = i;
for(int i = 0; i < n; i++) if(sa[i] >= k) y[p++] = sa[i] - k;
for(int i = 0; i < m; i++) c[i] = 0;
for(int i = 0; i < n; i++) ++c[x[y[i]]];
for(int i = 1; i < m; i++) c[i] += c[i-1];
for(int i = n-1; i >= 0; i--) sa[--c[x[y[i]]]] = y[i];
swap(x, y);
p = 1, x[sa[0]] = 0;
for(int i = 1; i < n; i++)
x[sa[i]] = (y[sa[i]] == y[sa[i-1]] and y[sa[i]+k] == y[sa[i-1]+k]) ? p-1 : p++;
if(p == n) break;
else m = p;
}
memcpy(rk, x, sizeof(rk));
int k = 0;
for(int i = 0; i < n; i++) {
if(k) k--;
if(!rk[i]) continue;
int j = sa[rk[i]-1];
while(str[i+k] == str[j+k]) k++;
height[rk[i]] = k;
}
}
} sa;
int len;
char buf[MAXN + 10];
int main() {
scanf("%s", buf); len = strlen(buf);
sa.build_sa(buf);
for(int i = 1; i <= len; i++)
printf("%d ", sa.sa[i] + 1);
putchar(10);
for(int i = 2; i <= len; i++)
printf("%d ", sa.height[i]);
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 7.898 ms | 30 MB + 568 KB | Wrong Answer | Score: -100 | 显示更多 |
| Subtask #1 Testcase #2 | 7.925 ms | 30 MB + 568 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 7.921 ms | 30 MB + 568 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 7.915 ms | 30 MB + 568 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 7.903 ms | 30 MB + 568 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 7.891 ms | 30 MB + 568 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 38.657 ms | 32 MB + 948 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 55.162 ms | 33 MB + 112 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 40.829 ms | 32 MB + 1000 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 29.301 ms | 32 MB + 132 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 29.366 ms | 32 MB + 172 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 45.506 ms | 33 MB + 304 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 44.351 ms | 33 MB + 272 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #14 | 42.043 ms | 33 MB + 4 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #15 | 41.68 ms | 33 MB + 20 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #16 | 45.502 ms | 33 MB + 304 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #17 | 45.763 ms | 33 MB + 304 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #18 | 46.367 ms | 33 MB + 304 KB | Accepted | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-18 17:52:18 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠