蒟蒻代码求助
查看原帖
蒟蒻代码求助
1065071
Atserckcn楼主2024/5/26 11:21

蒟蒻代码求助

代码:

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+5;
int now,cnt=1,num,ans;
int getnumber(char ch)
{
	return ch-'a';
}
struct EDGE{
	int son[26];
	int cnt;
}edge[MAXN];
int n,m;
string s;
void insert(string s)
{
	now=1;
	for(int i=0;i<s.size();i++)
	{
		num=getnumber(s[i]);
		if(!edge[now].son[num])
			edge[now].son[num]=++cnt;
		now=edge[now].son[num];
		if(i==s.size()-1) edge[now].cnt++;
	}
	return;
}
void find(string s)
{
	ans=0;
	now=1;
	for(int i=0;i<s.size();i++)
	{
		num=getnumber(s[i]);
		if(!edge[now].son[num])
		{
			printf("%d\n",ans);
			return;
		}
		now=edge[now].son[num];
		ans+=edge[now].cnt;
	}
	printf("%d\n",ans);
	return;
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%s",s);
		insert(s);
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%s",s);
		find(s);
	}
	return 0;
}

0pts

2024/5/26 11:21
加载中...