提交记录 5059
| 提交时间 |
评测时间 |
| 2018-08-05 20:37:20 |
2020-08-01 00:10:29 |
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN = 1e5 + 7;
inline int R()
{
char ch = getchar();
int rt = 0;
bool isn = false;
for ( ; ch > '9' || ch < '0'; ch = getchar() )
isn = ch == '-' ? true : isn;
for ( ; ch <= '9' && ch >= '0'; ch = getchar() )
rt = rt * 10 + ch - '0';
return isn ? -rt : rt;
}
char c[MAXN];
int rk[MAXN << 1], t[MAXN << 1], sa[MAXN];
int f[MAXN], o[MAXN], h[MAXN], ht[MAXN];
int main ()
{
int ns = 0;
scanf ( "%s", c );
int l = strlen ( c );
if ( l == 1 )
{
puts ( "1" );
return 0;
}
for ( int i = 0; i < l; ++i )
rk[i + 1] = c[i], ns = max ( ns, rk[i + 1] );
for ( int nl = 1; nl < l; nl <<= 1, ns = l )
{
memset ( f, 0, sizeof f );
for ( int i = 1; i <= l; ++i )
++f[rk[i + nl]];
for ( int i = 1; i <= ns; ++i )
f[i] += f[i - 1];
for ( int i = 1; i <= l; ++i )
o[f[rk[i + nl]]--] = i;
memset ( f, 0, sizeof f );
for ( int i = 1; i <= l; ++i )
++f[rk[i]];
for ( int i = 1; i <= ns; ++i )
f[i] += f[i - 1];
for ( int i = l; i; --i )
t[o[i]] = f[rk[o[i]]]--;
for ( int i = 1; i <= l; ++i )
sa[t[i]] = i;
bool uq = false;
for ( int i = 2; i <= l; ++i )
if ( rk[sa[i]] == rk[sa[i - 1]] && rk[sa[i] + nl] == rk[sa[i - 1] + nl] )
t[sa[i]] = t[sa[i - 1]], uq = true;
swap ( t, rk );
if ( !uq )
break;
}
for ( int i = 1; i <= l; ++i )
sa[rk[i]] = i;
for ( int i = 1; i <= l; ++i )
printf ( "%d ", sa[i] );
puts ( "" );
for ( int i = 1; i <= l; ++i )
{
h[i] = max ( h[i - 1] - 1, 0 );
for ( int j = i + h[i], k = sa[rk[i] - 1] + h[i]; c[j - 1] == c[k - 1]; ++j, ++k )
++h[i];
}
for ( int i = 2; i <= l; ++i )
printf ( "%d ", h[sa[i]] );
puts ( "" );
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 34.64 us | 44 KB | Wrong Answer | Score: -100 | 显示更多 |
| Subtask #1 Testcase #2 | 385.67 us | 1 MB + 984 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 386.42 us | 1 MB + 984 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 667.85 us | 1 MB + 988 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 665.35 us | 1 MB + 984 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 668.51 us | 1 MB + 988 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 32.959 ms | 3 MB + 960 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 61.774 ms | 4 MB + 124 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 36.768 ms | 3 MB + 1012 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 23.73 ms | 3 MB + 292 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 24.851 ms | 3 MB + 332 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 48.943 ms | 4 MB + 316 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 46.279 ms | 4 MB + 284 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #14 | 39.261 ms | 4 MB + 16 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #15 | 38.74 ms | 4 MB + 32 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #16 | 45.619 ms | 4 MB + 316 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #17 | 45.186 ms | 4 MB + 316 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #18 | 45.492 ms | 4 MB + 316 KB | Accepted | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-12 12:56:25 | Loaded in 2 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠