学校CCR测出来是80,进程被堵塞
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5;
string s,t;
int T;
long long c[N][50],b[N],cnt,num,ans;
int main()
{
// freopen("string.in","r",stdin);
// freopen("string.out","w",stdout);
scanf("%d",&T);
for (int l=1;l<=T;l++) {
cin>>s>>t;
for (int i=0;i<s.length();i++)
b[s[i]-'a']++;
bool o=0;
for (int i=0;i<t.length();i++)
if (b[t[i]-'a']==0) {
printf("-1\n");
o=1;
break;
}
if (o) continue;
for (int i=s.length()-1;i>0;i--)
c[i-1][s[i]-'a']=i;
for (int i=s.length()-2;i>=0;i--)
for (int j=0;j<26;j++)
if (c[i][j]==0)
c[i][j]=c[i+1][j];
num=0;
ans=0;
while (num<t.length()) {
cnt=0;
ans++;
if (s[0]==t[num]) {
num++;
}
while (c[cnt][t[num]-'a']!=0) {
cnt=c[cnt][t[num]-'a'];
num++;
}
}
printf("%lld\n",ans);
}
return 0;
}