L: Long Long Ago

时间限制: 1 s      内存限制: 128 MB     
 

题目描述

今天SHIELD捕获到一段从敌方基地发出的信息里面包含一串被经过某种算法加密过的的序列L
组织的间谍活动如下几个线索:
这个算法不会改变秘密消息的字符顺序,但是会两个字符之间在中间加入未知个数的字符
如原信息
ab
可能的加密结果
ammmxxxxb
现在你有n个待选关键字
如果这个关键字可能是秘密消息输出Yes,否则输出No
如ammmmxxxxb
可能包含的关键字有
ab
mb
mxb
......

输入

第一行输入一串字符串L

(1≤L≤105)
第二行输入一个整数N,表示查找字符串的个数。(1≤N≤105)
接下来N行表示,输入一行字符串M

n个字符的长度之和为[1,100000]

输出

输出N

行,如果是符合提议就输出Yes,否则输出No

样例输入

noiauwfaurainairtqltqlmomomo
8
rain
air
tql
ntt
xiaobai
oiiiooo
orzcnzcnznb
ooooo

样例输出

Yes
Yes
Yes
Yes
No
Yes
No
No
#include<iostream>
#include<math.h>
#include<string.h>
#include<vector>
#define ll long long
using namespace std;
vector<ll>p[];//开个二维的动态数组
char s[],ss[];
ll find2(ll target, ll k)
{
if (p[target].size() == )
return -;
else
{
ll l = , r = p[target].size() - , mid;
while (l <= r)
{
mid = l + ((r - l) >> );
if (p[target][mid] > k)//p[target][mid]=target在s数组的下标
r = mid - ;
else
l = mid + ;
}
if (l <= p[target].size()-)
return p[target][l];
else
return -;
}
}
int main()
{
ll n;
scanf("%s", s);
for (int i = ;s[i]; i++)//如果用i<strlen(s)会超时
p[s[i] - 'a'].push_back(i);
scanf("%lld", &n);
while (n--)
{
scanf("%s", ss);
ll k = -, flag = ;
for (int i = ; ss[i]; i++)
{
k=find2(ss[i] - 'a', k);//k是上一次查找返回的位置,初始化为-1
if (k == -)
{
flag = ;
break;
}
}
if (flag == )
printf("Yes\n");
else
printf("No\n");
}
//system("pause");
return ;
}

超时的strlen、sqrt     https://blog.csdn.net/xxiaobaib/article/details/78228547

L: Long Long Ago---二分的更多相关文章

  1. C. Tavas and Karafs 二分查找+贪心

    C. Tavas and Karafs #include <iostream> #include <cstdio> #include <cstring> #incl ...

  2. UVa 10539 (筛素数、二分查找) Almost Prime Numbers

    题意: 求正整数L和U之间有多少个整数x满足形如x=pk 这种形式,其中p为素数,k>1 分析: 首先筛出1e6内的素数,枚举每个素数求出1e12内所有满足条件的数,然后排序. 对于L和U,二分 ...

  3. hdu4717 The Moving Points(二分做法)

    这道题看了大家都是用三分做的,其实这道题也是可以用二分来做的,就是利用一下他们的单调性. 对于N个点,总共要考虑N(N+1)/2个距离,距离可以用二次函数表示,而且开口都是向上的. 下面具体说一下二分 ...

  4. STL--G - For Fans of Statistics(两个推断条件-二分)

    G - For Fans of Statistics Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & ...

  5. POJ 2104:K-th Number(整体二分)

    http://poj.org/problem?id=2104 题意:给出n个数和m个询问求区间第K小. 思路:以前用主席树做过,这次学整体二分来做.整体二分在yr大佬的指点下,终于大概懂了点了.对于二 ...

  6. POJ 1845 Sumdiv#质因数分解+二分

    题目链接:http://poj.org/problem?id=1845 关于质因数分解,模板见:http://www.cnblogs.com/atmacmer/p/5285810.html 二分法思想 ...

  7. BZOJ2406矩阵——有上下界的可行流+二分答案

    题目描述 输入 第一行两个数n.m,表示矩阵的大小. 接下来n行,每行m列,描述矩阵A. 最后一行两个数L,R. 输出 第一行,输出最小的答案: 样例输入 2 2 0 1 2 1 0 1 样例输出 1 ...

  8. bzoj 4326: NOIP2015 运输计划(二分+树链剖分)

    传送门 题解: 树链剖分快速求解任意两点间的路径的权值和: 然后,二分答案: 此题的难点是如何快速求解重合路径? 差分数组可以否??? 在此之前先介绍一下相关变量: int fa[maxn]; int ...

  9. 洛谷 P1163"银行贷款"(二分)

    传送门 题解: 二分月利率,假设当前判断的月利率为x: 那么如何判断x是大了还是小了呢? 下面来分析一下Check()函数: bool Check(double x) { double tot=a; ...

  10. CodeForces 1117C Magic Ship (循环节+二分答案)

    <题目链接> 题目大意: 给定起点和终点,某艘船想从起点走到终点,但是海面上会周期性的刮风,船在任何时候都能够向四个方向走,或者选择不走,船的真正行走路线是船的行走和风的走向叠加的,求船从 ...

随机推荐

  1. struts2 入门程序

    1.struts 2.5.2 基本jar包 2.web.xml <!-- Filters --> <!-- START SNIPPET: filter --> <filt ...

  2. Codeforces761A Dasha and Stairs 2017-02-05 23:28 114人阅读 评论(0) 收藏

    A. Dasha and Stairs time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  3. 如何彻底删除TFS的工作项字段

    TFS的工作项字段可以在所有工作项类型之间共享.例如自定义了一个字段"验证迭代"(Mycompany.IterationValidation)那么在需求.Bug中都可以添加这个字段 ...

  4. TFS (Team Foundation Server) 2013集成Maven构建

    Team Foundation Server原生就支持跨平台的构建,包括Ant和Maven两种构建方式.通过配置构建服务器,连接TFS源代码库,可以实现持续集成构建,自动检测代码库健康状况,进而实现自 ...

  5. 对virtual虚方法的理解

    对virtual虚方法的理解 https://www.cnblogs.com/u3ddjw/p/6676485.html

  6. JS中移除非数字,最多保留一位小数

    //去除非数字 var clearNoNum = function (item) { if (item!=null && item!=undefined) { //先把非数字的都替换掉 ...

  7. c# 线程的基本使用

    创建线程 线程的基本操作 线程和其它常见的类一样,有着很多属性和方法,参考下表: 创建线程的方法有很多种,这里我们先从thread开始创建线程 class Program { static void ...

  8. Npoi--合并单元格

    一.缘由. 最近公司的一个需求,导出 Excel, 相同的数据进行合并,并且 还有 二级合并. 最终效果图如下: 哈哈哈哈哈,图表略微有些丑陋,请大家不要介意. 他的原始数据,是一条一条的, 如下图: ...

  9. 解决 UnicodeEncodeError: 'ascii' codec can't encode characters in position 问题

    在开头加上 import sys reload(sys) sys.setdefaultencoding( "utf-8" ) Python自然调用ascii编码解码程序去处理字符流 ...

  10. openvswitch dpdk

    作者:张华  发表于:2016-04-07版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 硬件要 ...