提交记录 3972
| 用户 | 题目 | 状态 | 得分 | 用时 | 内存 | 语言 | 代码长度 |
|---|---|---|---|---|---|---|---|
| Dof | noi18c. 【NOI2018】你的名字 | Time Limit Exceeded | 48 | 4 s | 313932 KB | C++ | 1.71 KB |
| 提交时间 | 评测时间 |
|---|---|
| 2018-07-18 20:15:51 | 2020-07-31 22:11:26 |
#include <cstdio>
#include <cstring>
#include <map>
typedef long long LL;
const int N = 2000005, BAS = 137;
int n, m, Qi;
char s[N], t[N];
LL ans, H[N], h[N];
std::map<LL, int> M;
struct Sam {
int tot, lst, tr[26][N], fa[N], dep[N];
inline int New_(int _dep, int slink) {
dep[++tot] = _dep; fa[tot] = slink;
return tot;
}
void Ins(int a) {
int np = New_(dep[lst] + 1, 0), p = lst;
lst = np;
for (; p && !tr[a][p]; p = fa[p]) tr[a][p] = np;
if (!p) return void(fa[np] = 1);
int q = tr[a][p];
if (dep[p] + 1 == dep[q]) return void(fa[np] = q);
int y = New_(dep[p] + 1, fa[q]);
for (int i = 0; i < 26; ++i) tr[i][y] = tr[i][q];
fa[q] = fa[np] = y;
for (; p && tr[a][p] == q; p = fa[p]) tr[a][p] = y;
}
void Clear() {
for (int i = 1; i <= tot; ++i) {
for (int j = 0; j < 26; ++j) tr[j][i] = 0;
fa[i] = dep[i] = 0;
}
tot = lst = 1;
}
} SA, SB;
inline LL Hash_(int l, int r) {
return (h[r] - h[l - 1]) * H[m - l];
}
int main() {
H[0] = 1;
for (int i = 1; i < N; ++i) H[i] = H[i - 1] * BAS;
scanf("%s", s + 1);
n = strlen(s + 1);
SA.Clear();
for (int i = 1; i <= n; ++i) {
SA.Ins(s[i] - 'a');
}
scanf("%d", &Qi);
for (int fk; Qi; --Qi) {
scanf("%s%d%d", t + 1, &fk, &fk);
m = strlen(t + 1);
SB.Clear(); M.clear(); ans = 0;
for (int i = 1; i <= m; ++i) {
h[i] = h[i - 1] + H[i] * t[i];
SB.Ins(t[i] - 'a');
}
for (int i = 2; i <= SB.tot; ++i) {
ans += SB.dep[i] - SB.dep[SB.fa[i]];
}
for (int i = 1; i <= m; ++i) {
int p = 1;
for (int j = i; j <= m; ++j) {
int nx = t[j] - 'a';
if (SA.tr[nx][p]) p = SA.tr[nx][p]; else break;
LL ha = Hash_(i, j);
if (M[ha] == 0) {
M[ha] = 1; --ans;
}
}
}
printf("%lld\n", ans);
}
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 12.983 ms | 15 MB + 604 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #2 | 19.475 ms | 15 MB + 752 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #3 | 20.204 ms | 15 MB + 756 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #4 | 167.843 ms | 16 MB + 240 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #5 | 161.709 ms | 16 MB + 228 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #6 | 4 s | 306 MB + 588 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #7 | 4 s | 264 MB + 352 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #8 | 1.483 s | 37 MB + 636 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #9 | 97.331 ms | 33 MB + 268 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #10 | 2.989 s | 55 MB + 316 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #11 | 214.403 ms | 50 MB + 608 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #12 | 4 s | 72 MB + 796 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #13 | 346.706 ms | 68 MB + 692 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #14 | 4 s | 90 MB + 880 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #15 | 491.224 ms | 87 MB + 308 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #16 | 4 s | 108 MB + 1008 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #17 | 645.562 ms | 106 MB + 172 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #18 | 4 s | 63 MB + 824 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #19 | 4 s | 78 MB + 556 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #20 | 4 s | 93 MB + 544 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #21 | 4 s | 109 MB + 100 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #22 | 4 s | 108 MB + 1004 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #23 | 4 s | 108 MB + 936 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #24 | 4 s | 109 MB + 48 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #25 | 4 s | 109 MB + 132 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-17 18:16:27 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠