求助哪错了
查看原帖
求助哪错了
712533
__hqt__楼主2024/5/11 17:09

思路:放在字典树里的同时放入一个编号,查询个数时用尾编号减首编号再加一,但不知道哪错了

#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>//tree
#include<ext/pb_ds/hash_policy.hpp>//hash
#include<ext/pb_ds/trie_policy.hpp>//trie
#include<ext/pb_ds/priority_queue.hpp>//priority_queue
using namespace std;
using namespace __gnu_pbds;
#define endl '\n'
typedef long long ll;
typedef pair<string,int> psi;
trie<string,int,trie_string_access_traits<>,pat_trie_tag,trie_prefix_search_node_update> a;
int k=0;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int T,n,q;
	string s;
	cin>>T;
	while(T--)
	{
		a.clear();
		k=0;
		cin>>n>>q;
		for(int i=1;i<=n;i++)
		{
			cin>>s;
			k++;
			psi t=make_pair(s,k);
			a.insert(t);
		}
		for(int i=1;i<=q;i++)
		{
			cin>>s;
			auto t=a.prefix_range(s);
			cout<<((*(t.second)).second-(*(t.first)).second+1)<<endl;
		}
	}
}
2024/5/11 17:09
加载中...