样例AC但是听取WA声一片的小蒟蒻求条
查看原帖
样例AC但是听取WA声一片的小蒟蒻求条
1300710
yuxusheng楼主2024/5/30 10:05
#include <bits/stdc++.h>
using namespace std;

int cnt = 1, n, k;//cnt为节点数
struct trie
{
	int son[80]; //son为儿子节点编号
	bool end;
}a[100005];

void insert(string s)//插入字符串s 
{
	int p = 1;//p是当前坐标 
	for(int i = 0; i < s.size(); i++)
	{
		int ch = s[i] - 47;//int-char互化 
		if(a[p].son[ch] == 0)//没有儿子,即节点不存在 
			a[p].son[ch] = ++cnt;//p的儿子是新插入节点 
		p = a[p].son[ch];//转到子节点 
	}
	a[p].end = true;//录入结束,此时p代表节点就是字符串末尾 
}

int query(string s)
{
	int p = 1, ans = 0;
	for(int i = 0; i < s.size(); i++)
	{
		int ch = s[i] - 47;
		if(a[a[p].son[ch]].end)ans++;
		if(a[p].son[ch] == 0)return ans;
		p = a[p].son[ch];
	}
	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) << "\n";
	}
	
	return 0;
}
2024/5/30 10:05
加载中...