比赛 20241021 评测结果 AAAAAAAAAAAAAA
题目名称 子序列 最终得分 100
用户昵称 小金 运行时间 0.079 s
代码语言 C++ 内存使用 5.10 MiB
提交时间 2024-10-21 11:49:44
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; 
int m,t[100010][30],b[30],len;
char str[100010];
int main()
{
	freopen("subsequence.in","r",stdin);
    freopen("subsequence.out","w",stdout);
	scanf("%s",str+1);
	len=strlen(str+1);
	for(int i=len;i>=1;i--)
	{
		for(int j=0;j<26;j++)
		{
			t[i][j]=b[j];
		}
		b[str[i]-'a']=i;
	}
	for(int i=0;i<=26;i++)
	{
		t[0][i]=b[i];
	}
	scanf("%d",&m);
	for(int i=1;i<=m;i++)
	{
		scanf("%s",str+1);
		len=strlen(str+1);
		int x=0,p=0;
		for(int j=1;j<=len;j++)
		{
			if(t[x][str[j]-'a']!=0) x=t[x][str[j]-'a'];
			else
			{
				printf("No\n");
				p=1;
				break;
			} 
		}
		if(p==0) printf("Yes\n");
	}
	return 0;
}