【计蒜客 - 2019南昌邀请赛网络赛 - M】Subsequence(字典树,dp预处理)
题干:
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预处理)相关推荐
- 【计蒜客 - 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 ...
- 【计蒜客 - 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 ...
- 【计蒜客 - 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 ...
- 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(一)
D题:马的管辖 二进制枚举方案.判断该方案是否全部能被覆盖,将最优方案存下来并进行剪枝. #include<iostream> #include<cstring> #inclu ...
- 计蒜客2019蓝桥杯省赛B组模拟赛(一)题目及解析
蓝桥杯历年真题题目及题解目录汇总 A. 结果填空:钟表 题库链接 分值: 5 一天蒜头君 22:28:45 开始睡觉,06:24:26 醒来之后,蒜头君在想,今天我睡了多久? 请你告诉蒜头君睡了& ...
- 计蒜客 2019 蓝桥杯省赛 A 组模拟赛(一) B:炮台实验
题目描述 蒜头君在玩一个战争模拟游戏,他有高度为 1,2,3,-,n 的炮台各一个,他需要把这 n 个炮台从左往右排成一行,并且炮口都朝向右边. 在这个游戏中,所有炮台发射的炮弹会摧毁前方所有高度比自 ...
- 计蒜客2019蓝桥杯省赛 B 组模拟赛(一)轻重搭配|
题解:这题一看就知道是贪心问题,但问题是怎么贪,直接暴力循环一遍,TLE.选错贪心思路,只能过一小部分数据,正确贪心思路:从前一半遍历,在后一半中找到比当前元素的两倍大的数 代码如下: #includ ...
- 2019南昌邀请赛网络赛
A. PERFECT NUMBER PROBLEM 这题没什么要说的. #include<bits/stdc++.h>using namespace std;int main(){co ...
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 马踏棋盘的问题
//使用bfs #include<stdio.h> #include<iostream> #include<utility> #include<queue&g ...
最新文章
- Outlook 2010如何更改脱机缓存数据OST文件位置?
- bootstraptable设置行高度_条码打印软件中不干胶卷纸的标签设置方法
- 合并两个已经排好序的不等长的数组
- vfp 8.0中image控件的属性:RotateFlip
- Android Activity Launch Mode 启动模式详解
- 昨天是欧洲男人的,今天却属于亚洲女人
- antlr java_使用ANTLR和Java创建外部DSL
- 【CRMEB知识付费系统v1.4.4】
- Mac 系统下 配置多个ssh-key (git sourcetree)
- 信息安全工程师考试大纲(含pdf)
- Winrar 5.60 beta 4 个性破解注册码(2018.5.22)
- 管家婆普及版安装问题
- 避坑11_VScode在vue文件内template无法使用tab补齐标签
- 定义幂函数C语言,【知识点】幂函数定义与性质
- 奇瑞鲍思语:奇瑞新能源产品线将更加丰富
- 纯CSS3实现常见的时间进度线(竖立方向)
- useradd与adduser(更全面)创建用户命令 和 让用户拥有root权限
- TCP协议三次握手与三次挥手
- MUR1060AC-ASEMI快恢复二极管10A 600V
- MDT2008部署杂谈2——简介
热门文章
- 第七章 假设检验(3)
- mysql innodb redolog_MySQL · 引擎特性 · InnoDB redo log漫游(转)
- linux验证cuda安装成功_Linux环境CUDA 4.0入门:验证安装
- normalize函数_提取棋盘格角点函数解析
- python按行读取文件取消空白行_在Python中读取文件时忽略空行的最简单方法
- php5.4 mysql connect_php5.4 Call to undefined function mysql_connect()
- html5干货,干货:详解HTML5中常见的五大全局属性
- spring security:第一个程序解析
- Spring 4 MVC 单元测试例子
- oracle存储过程使用ftp,ASM存储FTP上传文件