样例对了全MLE
查看原帖
样例对了全MLE
537998
lpx2024楼主2023/7/19 08:43

不能用vector吗 (#11是wa)

#include<bits/stdc++.h>
using namespace std;
const int maxN=2000010;
int thair[maxN][127],cnt;
vector<int> v[maxN]; 
void Insert(string s,int x){
    int t=0;
    for(int i=0;i<s.size();i++){
        int p=s[i];
        if(!thair[t][p]) thair[t][p]=++cnt;
        t=thair[t][p];
        if(v[t].empty() || v[t][v[t].size()-1]!=x) v[t].push_back(x);
    }
}
int Query(string s){
    int t=0;
    for(int i=0;i<s.size();i++){
        int p=s[i];
        t=thair[t][p];
    }
    return t;
}
int main(){
	std::ios::sync_with_stdio(0);
    int n,m,p;
    cin>>n;
    for(int j=1;j<=n;j++){
        cin>>p;
        for(int i=1;i<=p;i++){
        	string s;
        	cin>>s;
        	Insert(s,j);
		}
    }
    cin>>m;
    for(int j=1;j<=m;j++){
        string s;
        cin>>s;
        int q=Query(s);
        if(v[q].empty()){
			cout<<endl;
			continue;
		}
        for(int i=0;i<v[q].size()-1;i++){
        	cout<<v[q][i]<<" ";
		}
		cout<<v[q][v[q].size()-1]<<endl;
    }
    return 0;
}
2023/7/19 08:43
加载中...