提交记录 4491
| 提交时间 |
评测时间 |
| 2018-07-23 20:03:39 |
2020-07-31 23:03:18 |
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAXN=100005;
int n;
char s[MAXN];
struct Suffix
{
int x,y,id;
Suffix(int x=0,int y=0,int id=0):x(x),y(y),id(id){}
inline bool operator ==(const Suffix &b)const {return x==b.x && y==b.y;}
}a[MAXN],b[MAXN];
int wcnt[29],sa[MAXN],rk[MAXN],height[MAXN];
void buildsa()
{
int tot=0,k=1;
for(int i=1;i<=n;i++)wcnt[s[i]-'a']++;
for(int i=1;i<26;i++)wcnt[i]+=wcnt[i-1];
for(int i=n;i>0;i--)sa[wcnt[s[i]-'a']--]=i;
for(int i=1;i<=n;i++)
if(s[sa[i]]==s[sa[i-1]])rk[sa[i]]=tot;
else rk[sa[i]]=++tot;
while(k<=n)
{
for(int i=1;i<=n;i++)a[i]=Suffix(rk[i],i+k<=n?rk[i+k]:0,i);
memset(wcnt,0,sizeof(wcnt));
for(int i=1;i<=n;i++)wcnt[a[i].y]++;
for(int i=1;i<26;i++)wcnt[i]+=wcnt[i-1];
for(int i=n;i>0;i--)b[wcnt[a[i].y]--]=a[i];
memset(wcnt,0,sizeof(wcnt));
for(int i=1;i<=n;i++)wcnt[b[i].x]++;
for(int i=1;i<26;i++)wcnt[i]+=wcnt[i-1];
for(int i=n;i>0;i--)a[wcnt[b[i].x]--]=b[i];
tot=0;
for(int i=1;i<=n;i++)
if(a[i]==a[i-1])rk[a[i].id]=tot;
else rk[a[i].id]=++tot;
k<<=1;
}
for(int i=1;i<=n;i++)sa[rk[i]]=i;
k=0;
for(int i=1;i<=n;i++)
{
if(k)k--;
for(int t=sa[rk[i]-1];i+k<=n && t+k<=n && s[i+k]==s[t+k];k++);
height[rk[i]]=k;
}
}
int main()
{
scanf("%s",s+1);
n=strlen(s+1);
buildsa();
for(int i=1;i<=n;i++)
printf("%d ",sa[i]);
putchar('\n');
for(int i=2;i<=n;i++)
printf("%d ",height[i]);
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 363.36 us | 2 MB + 348 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #2 | 367.57 us | 2 MB + 348 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 366.88 us | 2 MB + 348 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 369.33 us | 2 MB + 352 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 367.99 us | 2 MB + 348 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 366.99 us | 2 MB + 352 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 50.541 ms | 4 MB + 320 KB | Wrong Answer | Score: -100 | 显示更多 |
| Subtask #1 Testcase #8 | 48.524 ms | 4 MB + 344 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 49.367 ms | 4 MB + 320 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 31.692 ms | 3 MB + 660 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 31.256 ms | 3 MB + 668 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 44.02 ms | 4 MB + 528 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 16.984 ms | 3 MB + 728 KB | Runtime Error | Score: 0 | 显示更多 |
| Subtask #1 Testcase #14 | 47.451 ms | 4 MB + 344 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #15 | 48.258 ms | 4 MB + 628 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #16 | 43.925 ms | 4 MB + 384 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #17 | 44.983 ms | 4 MB + 628 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #18 | 44.718 ms | 4 MB + 624 KB | Wrong Answer | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-13 11:22:27 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠