社区讨论

样例都过不了,求助

P8306【模板】字典树参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@m2kgkiy8
此快照首次捕获于
2024/10/22 21:05
去年
此快照最后确认于
2025/11/04 16:30
4 个月前
查看原帖
CPP
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int T;
int n,m;
int idx;
int cnt[3000005];
int next[3000005][65];
struct Trie
{
	void clear()
	{
		idx = 0;
		memset(cnt, 0, sizeof cnt);
		memset(next, 0, sizeof next);
	}
	int getnum(char c)
	{
		if('A' <= c && c <= 'Z')
		{
			return c - 'A';
		}
		else if()
	}
	void insert(string a)
	{
		int p = 0;
		for(int i=0;i<a.size();++i)
		{
			int k = getnum(a[i]);
			if(next[p][k] == 0)
			{
				next[p][k] = ++idx;
			}
			p = next[p][k];
			++cnt[p];
		}
		return ;
	}
	bool query(string a)
	{
		int p = 0;
		for(int i=0;i<a.size();++i)
		{
			int k = getnum(a[i]);
			if(next[p][k] == 0)
			{
				return 0;
			}
			p = next[p][k];
		}
		return cnt[p];
	}
} q;

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>T; ++T;
	while(--T)
	{
		q.clear();
		cin>>n>>m;
		for(int i=1;i<=n;++i)
		{
			string a;
			cin>>a;
			q.insert(a);
		}
		for(int i=1;i<=m;++i)
		{
			string a;
			cin>>a;
			cout<<q.query(a)<<"\n";
		}
	}
	return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...