? Test 9 ?
查看原帖
? Test 9 ?
615348
zesqwq楼主2023/3/16 07:58

不知道啊,很奇怪,我起初写了个 SAM\text{SAM},然后 WA On test 9\text{WA On test 9}

然后我删去了 SAM\text{SAM} 部分,用下面这段代码 assert\text{assert},可以看到代码中读入了第一行的 nn,然后用 ~scanf 读入,最后统计出来的读入个数不一样?

不太懂。

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
char str[N], str2[N];
struct SAM {
    struct Node {
        int ch[26], f, len;
    } w[N << 1];
    int lst = 1, tot = 1;
    inline void insert(int x) {
        int u = lst, nu = ++tot;
        lst = tot, w[nu].len = w[u].len + 1;
        for (; u && !w[u].ch[x]; u = w[u].f) w[u].ch[x] = nu;
        if (!u) return void(w[nu].f = 1);
        int v = w[u].ch[x];
        if (w[v].len == w[u].len + 1) return void(w[nu].f = v);
        int nv = ++tot;
        w[nv] = w[v], w[nv].len = w[u].len + 1;
        for (; u && w[u].ch[x] == v; u = w[u].f) w[u].ch[x] = nv;
        w[nu].f = w[v].f = nv;
    }
} sam;
struct Edge {
    int next, v;
} edge[N << 2];
int h[N << 1], edgecnt;
inline void addedge(int u, int v) { edge[++edgecnt] = {h[u], v}, h[u] = edgecnt; }
int ans = 0;
int n, m, T, slen[N << 1];
int vis[N << 1], mx[N << 1];
int main() {
    int cmkakioi;
    cin >> cmkakioi;
    scanf("%s", str + 1), n = strlen(str + 1), ans = 0;
    int u = 1, len = 0, cnt = 0;
    while (~scanf("%s", str2 + 1)) {
        ++cnt;
    }
    assert(cnt + 1 == cmkakioi);
    for (int i = 1; i <= sam.tot; i++) ans = max(ans, slen[i]);
    printf("%d\n", ans);
    return 0;
}
/*
alsdfkjfjkdsal
aaaajfaaaa
*/
2023/3/16 07:58
加载中...