直接暴力一定会超时,对每次输入的ki个数做去重处理就好。
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 const int maxn=2e7+10; 5 6 int n,t,x; 7 char a[maxn],s[maxn]; 8 9 int main(){ 10 cin>>n; 11 int MAX=-maxn; 12 while(n--){ 13 cin>>s; 14 int len=strlen(s); 15 cin>>t; 16 int cnt=-maxn; 17 for(int i=0;i<t;i++){ 18 cin>>x; 19 x--; 20 MAX=max(x+len,MAX); 21 for(int i=max(cnt,x);i<x+len;i++){ 22 a[i]=s[i-x]; 23 } 24 cnt=x+len; 25 } 26 } 27 //cout<<a<<endl; 28 for(int i=0;i<MAX;i++){ 29 if(a[i]=='