求大佬看看
查看原帖
求大佬看看
631766
fyulingi楼主2025/1/15 15:40

求大佬看看这个,subtask #1 WA 了,呜呜呜。。

#include <bits/stdc++.h>
#include <algorithm>
#include <numeric>

using namespace std;

int da[500005][26];
int co[13000005];
int ans = 0;

void insert(string s) {
    int p = 0;
    for (int i = 0; i < s.length(); ++i) {
        int now_char = s[i]-'a';
        if (!da[p][now_char]) {
            da[p][now_char] = ++ans;
        }
        p = da[p][now_char];
    }
    co[p] += 1;
}

int count(string s) {
    int p = 0;
    for (int i = 0; i < s.length(); ++i) {
        int now_char = s[i]-'a';
        if (!da[p][now_char]) return 0;
        p = da[p][now_char];
    }
    if (co[p] == -1) return 2;
    else {
        co[p] = -1;
        return 1;
    }
}

void solve() {
    memset(da, 0, sizeof(da));
    memset(co, 0, sizeof(co));
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        string s;
        cin >> s;
        insert(s);
    }
    int m;
    cin >> m;
    for (int i = 0; i < m; ++i) {
        string s;
        cin >> s;
        int c = count(s);
        if (c == 1) {
            cout << "OK" << endl;
        } else if (c == 0) {
            cout << "WRONG" << endl;
        } else {
            cout << "REPEAT" << endl;
        }
    }
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    int t = 1;
    // cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}
2025/1/15 15:40
加载中...