题干:

Give a string SS and NN string T_iTi​ , determine whether T_iTi​ is a subsequence of SS.

If ti is subsequence of SS, print YES,else print NO.

If there is an array \lbrace K_1, K_2, K_3,\cdots, K_m \rbrace{K1​,K2​,K3​,⋯,Km​} so that 1 \le K_1 < K_2 < K_3 < \cdots < K_m \le N1≤K1​<K2​<K3​<⋯<Km​≤N and S_{k_i} = T_iSki​​=Ti​, (1 \le i \le m)(1≤i≤m), then T_iTi​ is a subsequence of SS.

Input

The first line is one string SS,length(SS) \le 100000≤100000

The second line is one positive integer N,N \le 100000N,N≤100000

Then next nn lines,every line is a string T_iTi​, length(T_iTi​) \le 1000≤1000

Output

Print NN lines. If the ii-th T_iTi​ is subsequence of SS, print YES, else print NO.

样例输入复制

abcdefg
3
abc
adg
cba

样例输出复制

YES
YES
NO

题目大意:

给你一个模板串,再给你n个串,问你这n个串能否由模板串的子序列构成。

解题报告:

出过好几次的套路了。。。刚开始NO没加\n,,,wa一发真可惜、、

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
const int MAX = 2e5 + 5;
string ss;
char s[MAX];
int trie[MAX][66];
int main() {int n;cin>>ss;int len = ss.size();ss = ' ' + ss;for(int j = 0; j<26; j++) trie[len+1][j] = -1;for(int i = len; i>=1; i--) {for(int j = 0; j<26; j++) {if(j == ss[i] - 'a') trie[i][j] = i;else trie[i][j] = trie[i+1][j];}}cin>>n;for(int i = 1; i<=n; i++) {int cur = 0;scanf("%s",s);int up = strlen(s);for(int j = 0; j<up; j++) {cur = trie[cur+1][s[j] - 'a'];if(cur == -1) {break;}}if(cur != -1) printf("YES\n");else printf("NO\n");}return 0 ;
}

【计蒜客 - 2019南昌邀请赛网络赛 - M】Subsequence(字典树,dp预处理)相关推荐

  1. 【计蒜客 - 2019南昌邀请赛网络赛 - I】Max answer(单调栈,RMQ)

    题干: Alice has a magic array. She suggests that the value of a interval is equal to the sum of the va ...

  2. 【计蒜客 - 2019南昌邀请赛网络赛 - H】Coloring Game(找规律,思维dp)

    题干: David has a white board with 2 \times N2×N grids.He decides to paint some grids black with his b ...

  3. 【计蒜客 - 2019南昌邀请赛网络赛 - K】MORE XOR(数学,找规律,打表)

    Given a sequence of nn numbers a_1, a_2, \cdots, a_na1​,a2​,⋯,an​ and three functions. Define a func ...

  4. 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(一)

    D题:马的管辖 二进制枚举方案.判断该方案是否全部能被覆盖,将最优方案存下来并进行剪枝. #include<iostream> #include<cstring> #inclu ...

  5. 计蒜客2019蓝桥杯省赛B组模拟赛(一)题目及解析

    蓝桥杯历年真题题目及题解目录汇总   A. 结果填空:钟表 题库链接 分值: 5 一天蒜头君 22:28:45 开始睡觉,06:24:26 醒来之后,蒜头君在想,今天我睡了多久? 请你告诉蒜头君睡了& ...

  6. 计蒜客 2019 蓝桥杯省赛 A 组模拟赛(一) B:炮台实验

    题目描述 蒜头君在玩一个战争模拟游戏,他有高度为 1,2,3,-,n 的炮台各一个,他需要把这 n 个炮台从左往右排成一行,并且炮口都朝向右边. 在这个游戏中,所有炮台发射的炮弹会摧毁前方所有高度比自 ...

  7. 计蒜客2019蓝桥杯省赛 B 组模拟赛(一)轻重搭配|

    题解:这题一看就知道是贪心问题,但问题是怎么贪,直接暴力循环一遍,TLE.选错贪心思路,只能过一小部分数据,正确贪心思路:从前一半遍历,在后一半中找到比当前元素的两倍大的数 代码如下: #includ ...

  8. 2019南昌邀请赛网络赛

      A. PERFECT NUMBER PROBLEM 这题没什么要说的. #include<bits/stdc++.h>using namespace std;int main(){co ...

  9. 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 马踏棋盘的问题

    //使用bfs #include<stdio.h> #include<iostream> #include<utility> #include<queue&g ...

最新文章

  1. Outlook 2010如何更改脱机缓存数据OST文件位置?
  2. bootstraptable设置行高度_条码打印软件中不干胶卷纸的标签设置方法
  3. 合并两个已经排好序的不等长的数组
  4. vfp 8.0中image控件的属性:RotateFlip
  5. Android Activity Launch Mode 启动模式详解
  6. 昨天是欧洲男人的,今天却属于亚洲女人
  7. antlr java_使用ANTLR和Java创建外部DSL
  8. 【CRMEB知识付费系统v1.4.4】
  9. Mac 系统下 配置多个ssh-key (git sourcetree)
  10. 信息安全工程师考试大纲(含pdf)
  11. Winrar 5.60 beta 4 个性破解注册码(2018.5.22)
  12. 管家婆普及版安装问题
  13. 避坑11_VScode在vue文件内template无法使用tab补齐标签
  14. 定义幂函数C语言,【知识点】幂函数定义与性质
  15. 奇瑞鲍思语:奇瑞新能源产品线将更加丰富
  16. 纯CSS3实现常见的时间进度线(竖立方向)
  17. useradd与adduser(更全面)创建用户命令 和 让用户拥有root权限
  18. TCP协议三次握手与三次挥手
  19. MUR1060AC-ASEMI快恢复二极管10A 600V
  20. MDT2008部署杂谈2——简介

热门文章

  1. 第七章 假设检验(3)
  2. mysql innodb redolog_MySQL · 引擎特性 · InnoDB redo log漫游(转)
  3. linux验证cuda安装成功_Linux环境CUDA 4.0入门:验证安装
  4. normalize函数_提取棋盘格角点函数解析
  5. python按行读取文件取消空白行_在Python中读取文件时忽略空行的最简单方法
  6. php5.4 mysql connect_php5.4 Call to undefined function mysql_connect()
  7. html5干货,干货:详解HTML5中常见的五大全局属性
  8. spring security:第一个程序解析
  9. Spring 4 MVC 单元测试例子
  10. oracle存储过程使用ftp,ASM存储FTP上传文件