求助,WA第一个和最后一个点
查看原帖
求助,WA第一个和最后一个点
400468
Aakkosetsumussa楼主2023/6/29 10:09
#include<bits/stdc++.h>
using namespace std;
typedef long long inr;
typedef unsigned long long unr;
#define fur(y) for(inr i=1;i<=y;i++)
#define fru(i,s,e) for(inr i=s;i<=e;i++)
#define frd(i,s,e) for(inr i=s;i>=e;i--)
#define el <<endl
#define sp <<" "<<
inr n,m,q,T;
inr trie[500005][205],num[500005]= {0},pos=1;
inline void Insert(string str) {
	inr p=0;
	for(inr i=0; i<str.size(); i++) {
		inr n=str[i];
		if(trie[p][n]==0) trie[p][n]=pos++;
		p=trie[p][n];
		num[p]++;
	}
}
inline inr find(string str) {
	inr p=0;
	for(inr i=0; i<str.size(); i++) {
		inr n=str[i];
		if(trie[p][n]==0) return 0;
		p=trie[p][n];
	}
	return num[p];
}
string ch;
main() {
	ios::sync_with_stdio(false);
	cin>>T;
	while(T--) {
		cin>>n>>q;
		for(inr i=0; i<=pos; i++)
			for(inr j=0; j<=200; j++) trie[i][j]=0;
		for(inr i=0; i<=pos; i++) num[i]=0;
		pos=1;
		for(inr i=1; i<=n; i++) {
			cin>>ch;
			Insert(ch);
		}
		for(inr i=1; i<=q; i++) {
			cin>>ch;
			cout<<find(ch)<<endl;
		}
	}
	return 0;
}
2023/6/29 10:09
加载中...