提交记录 8446
| 提交时间 |
评测时间 |
| 2019-02-17 17:09:16 |
2020-08-01 01:19:08 |
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=1000010;
char s[N];
int n,w,sa[N],rk[N<<1],oldrk[N]; //为了防止访问rk[i+w]导致数组越界,开两倍数组。当然也可以在访问前判断是否越界,但直接开两倍数组方便一些。
int main()
{
int i,p;
scanf("%s",s+1);
n=strlen(s+1);
for (i=1;i<=n;++i) rk[i]=s[i];
for (w=1;w<n;++w)
{
for (i=1;i<=n;++i) sa[i]=i;
sort(sa+1,sa+n+1,[](int x,int y){return rk[x]==rk[y]?rk[x+w]<rk[y+w]:rk[x]<rk[y];}); //这里用到了lambda表达式
memcpy(oldrk,rk,sizeof(oldrk)); //由于计算rk的时候原来的rk会被覆盖,要先复制一份
for (p=0,i=1;i<=n;++i) rk[sa[i]]=oldrk[sa[i]]==oldrk[sa[i-1]]&&oldrk[sa[i]+w]==oldrk[sa[i-1]+w]?p:++p; //若两个子串相同,它们对应的rk也需要相同,所以要去重
}
for (i=1;i<=n;++i) printf("%d ",sa[i]);
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 37.24 us | 48 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #2 | 755.63 us | 3 MB + 880 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #3 | 757.81 us | 3 MB + 880 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 4.024 ms | 3 MB + 880 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 3.794 ms | 3 MB + 880 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 4.255 ms | 3 MB + 880 KB | Wrong Answer | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 1 s | 4 MB + 428 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 1 s | 4 MB + 428 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #14 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #15 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #16 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #17 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Subtask #1 Testcase #18 | 1 s | 4 MB + 732 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-06 18:35:35 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠