比赛 20140425 评测结果 AAAAAAAAAAAAAA
题目名称 子序列 最终得分 100
用户昵称 超级傲娇的AC酱 运行时间 0.057 s
代码语言 C++ 内存使用 0.29 MiB
提交时间 2014-05-01 07:52:04
显示代码纯文本
/*
 类离散化处理
 */
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstdlib>
using namespace std;
string s,x;
vector<int>Discrete[30];
vector<int>::iterator pos;
int main()
{
	int T,i,j,k,Pos;
	freopen("subsequence.in","r",stdin);
	freopen("subsequence.out","w",stdout);
	ios::sync_with_stdio(false);
	cin>>s>>T;
	for(i=0;i<s.length();i++)Discrete[s[i]-'a'].push_back(i);
	for(i=0;i<T;i++){
		cin>>x;
		Pos=-1;
		for(j=0;j<x.size();j++){
			pos=upper_bound(Discrete[x[j]-'a'].begin(),Discrete[x[j]-'a'].end(),Pos);
			if(pos==Discrete[x[j]-'a'].end()){
				cout<<"No"<<endl;
				goto CH;
			}
			Pos=*pos;
		}
		cout<<"Yes"<<endl;
    CH:;
	}
	return 0;
}