样例过了,但是爆零了
查看原帖
样例过了,但是爆零了
1300710
yuxusheng楼主2024/5/29 20:03
#include <bits/stdc++.h>
using namespace std;

int n, k, a[100005], trie[100005][27], tot, cnt[100005];

void insert(string s)
{
	int p = 1;
	for(int i = 0; i < s.size(); i++)
	{
		int ch = s[i] - 96;
		if(trie[p][ch] == 0)
		{
			trie[p][ch] = ++tot;
			p = trie[p][ch];
		}
	}
	cnt[p] = 1;
}

int query(string s)
{
	int p = 1, ans = 0;
	for(int i = 0; i < s.size(); i++)
	{
		int ch = s[i] - 96;
		p = trie[p][ch];
		if(p == 0)return ans;
		ans += cnt[p];
	}
	return ans;
}

int main()
{
	cin >> n >> k;
	for(int i = 1; i <= n; i++)
	{
		string s;
		cin >> s;
		insert(s); 
	}
	for(int i = 1; i <= k; i++)
	{
		string s;
		cin >> s;
		cout << query(s) << endl;
	}
	return 0;
}
2024/5/29 20:03
加载中...