测试点2,3,4RE,请帮忙找下bug
查看原帖
测试点2,3,4RE,请帮忙找下bug
515532
InfiniteUniverse楼主2024/6/21 17:35
#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const int N = 1e5, M = 1e5, L = 1e6;
int n, m;


char trie[L + 5][30] = {0};
int StrCnt[L + 5];
int tot = 0;

void insert(string s) {
	int now = 0;
	for(int i = 0; i < s.size(); i++) {
		int id = (int)(s[i] - 'a');
		if(trie[now][id] == 0) {
			trie[now][id] = ++tot;
		}
		now = trie[now][id];
	}
	StrCnt[now]++;
}

int query(string t) {
	int ans = 0;
	int now = 0;
	for(int i = 0; i < t.size(); i++) {
		int id = (int)(t[i] - 'a');
		if(trie[now][id] == 0) {
			break;
		}
		now = trie[now][id];
		ans += StrCnt[now];
	}
	return ans;
}


int main() {
	memset(StrCnt, 0, sizeof StrCnt);
	scanf("%d%d", &n, &m);
	for(int i = 1; i <= n; i++) {
		string s;
		cin >> s;
		insert(s);
	}
	for(int i = 1; i <= m; i++) {
		string t;
		cin >> t;
		printf("%d\n", query(t));
	}
	return 0;
}
2024/6/21 17:35
加载中...