WA求调
查看原帖
WA求调
678858
ShiRoZeTsuHL卜奎BBQ!楼主2023/9/10 19:51

空间什么的应该都是对的,但是不知道哪里错了

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 4e5 + 5;

int t, n, cnt;
int trie[maxn], nxt[maxn][10];
bool flag;
char s[11];

bool add(char* p) {
    int len = strlen(p+1), now = 0;
    bool x = false;
    for(int i = 1; i <= len; i++) {
        if(!nxt[now][p[i]-'0']) {
            x = true;
            nxt[now][p[i]-'0'] = ++cnt;
        }
        now = nxt[now][p[i]-'0'];
        if(trie[now]) return false;
    }
    trie[now] = 1;
    return x;
}

int main() {
    scanf("%d", &t);
    while(t--) {
        memset(trie, 0, sizeof(trie));
        memset(nxt, 0, sizeof(nxt));
        cnt = 0, flag = true;
        scanf("%d", &n);
        for(int i = 1; i <= n; i++) {
            scanf("%s", s+1);
            if(!flag) continue;
            if(!add(s)) flag = false;
        }
        if(flag) printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}
2023/9/10 19:51
加载中...