提交记录 8685
| 用户 |
题目 |
状态 |
得分 |
用时 |
内存 |
语言 |
代码长度 |
| bzy |
1006. 【模板题】后缀排序 |
Wrong Answer |
0 |
56.792 ms |
4156 KB |
C++11 |
2.06 KB |
| 提交时间 |
评测时间 |
| 2019-03-03 13:59:06 |
2020-08-01 01:23:20 |
#include<bits/stdc++.h>
using namespace std;
namespace SFX{
int SA[200005];
int RK[200005];
int H [200005];
string S; int n;
void Debug(){
for(int i = 1;i <= n;i ++) cout << RK[i] << " "; cout << "\n";
}
void init(){
n = S.size(); int N = max( n, 26 );
for( int i = 1; i <= n; i ++ ) RK[i] = S[i - 1] - 'a' + 1;
for( int i = 1; i <= n; i <<= 1 ) {
static int f[100005], s[100005], t[100005];
memset( f, 0, sizeof(f) );
for( int j = 1; j <= n; j ++ ) f[ RK[j + i] ] ++;
for( int j = 1; j <= N; j ++ ) f[j] += f[j - 1];
for( int j = 1; j <= n; j ++ ) s[ f[ RK[j + i] ] -- ] = j;
//for( int j = 1; j <= n; j ++ ) cout << f[j] << " "; cout << "]\n";
memset( f, 0, sizeof(f) );
for( int j = 1; j <= n; j ++ ) f[ RK[j] ] ++;
for( int j = 1; j <= N; j ++ ) f[j] += f[j - 1];
for( int j = n; j >= 1; j -- ) t[ f[ RK[ s[j] ] ] -- ] = s[j];
//for( int j = 1; j <= n; j ++ ) cout << t[j] << " "; cout << "]\n";
int ll = -1, lr = -1, rank = 0;
static int r[100005];
for( int j = 1; j <= n; j ++ ) {
if( ll != RK[ t[j] ] or lr != RK[ t[j] + i ] ) rank ++;
r[ t[j] ] = rank;
ll = RK[ t[j] ]; lr = RK[ t[j] + i ];
}
for( int j = 1; j <= n; j ++ ) RK[j] = r[j];
if( rank == n ) break;
//Debug();
}
for( int i = 1; i <= n; i ++ ) SA[ RK[i] ] = i;
int pt = 0; S += '#';
for( int i = 1; i <= n; i ++ ){
if( pt ) pt --;
int x = SA[ RK[i] - 1 ];
while( S[ i + pt - 1 ] == S[ x + pt - 1 ] ) pt ++;
H[ RK[i] ] = pt;
}
}
}
void output(){
using namespace SFX;
for(int i = 1;i <= n;i ++) printf( "%d ", SA[i] ); putchar( '\n' ); //cout << "\n";
for(int i = 2;i <= n;i ++) printf( "%d ", H [i] ); // cout << H [i] << " ";
}
int main(){
cin >> SFX::S;
SFX::init(); output();
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 76.66 us | 452 KB | Wrong Answer | Score: -100 | 显示更多 |
| Subtask #1 Testcase #2 | 77.56 us | 452 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 77.43 us | 452 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 114.04 us | 452 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 113.51 us | 452 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 114.37 us | 452 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 32.51 ms | 3 MB + 704 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 56.792 ms | 3 MB + 892 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 35.884 ms | 3 MB + 756 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 23.224 ms | 2 MB + 652 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 24.359 ms | 2 MB + 692 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 48.4 ms | 4 MB + 60 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 45.865 ms | 4 MB + 28 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #14 | 38.612 ms | 3 MB + 784 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #15 | 38.009 ms | 3 MB + 800 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #16 | 45.05 ms | 4 MB + 60 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #17 | 44.152 ms | 4 MB + 60 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #18 | 44.591 ms | 4 MB + 60 KB | Accepted | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-06 08:41:23 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠