题目链接
序列自动机预处理一下原串。
然后直接序列自动机上处理询问即可。

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e6 + 10;
#define fi first
#define se second
#define pb push_back
char a[N],b[N];
int x,nx[N][26];
int main() {
  ios::sync_with_stdio(false);
  cin>>a+1;
  int x=strlen(a+1);
  for(int i=x;i>=1;i--){
    for(int j=0;j<26;j++)nx[i][j]=nx[i+1][j];
    nx[i][a[i]-'a']=i;
  }
  cin>>x;
  for(int i=1;i<=x;i++){
    cin>>b+1;
    int y=strlen(b+1);
    int z=0,ok=0;
    for(int j=1;j<=y;j++){
      if(!nx[z+1][b[j]-'a']){
        ok=1;break;
      }
      z=nx[z+1][b[j]-'a'];
    }
    if(ok)cout<<"No\n";
    else cout<<"Yes\n";
  }
  return 0;
}