警示后人:如果你 只WA on #5
查看原帖
警示后人:如果你 只WA on #5
678858
ShiRoZeTsuHL卜奎BBQ!楼主2023/9/11 18:57

在每个单词之间放间隔字符的时候,不要忘记 trie 的数组也应该开到对应大小:

例如我的:

scanf("%d", &n);
for(int i = 1; i <= n; i++) {
    scanf("%s", s+cur+1);
    addt(s+cur, i);
    cur += strlen(s+cur+1)+1;
    s[cur] = '!';
}

然后开空间时:

int son[maxn][26];

结果 WA on #5(居然不是全WA,看来数据确实水)

更正后:

scanf("%d", &n);
for(int i = 1; i <= n; i++) {
    scanf("%s", s+cur+1);
    addt(s+cur, i);
    cur += strlen(s+cur+1)+1;
    s[cur] = 'z'+1; //为了节省空间,使用 'z' 后面的一个字符
}

开空间:

int son[maxn][27];

直接 A 过去了

2023/9/11 18:57
加载中...