Hidden String

Accepts: 437
Submissions: 2174
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)

问题描写叙述

今天是BestCoder一周年纪念日. 比赛管理员Soda有一个长度为n的字符串s. 他想要知道是否能找到s的三个互不相交的子串s[l1..r1], s[l2..r2], s[l3..r3]满足下列条件:1. 1≤l1≤r1<l2≤r2<l3≤r3≤n2. s[l1..r1], s[l2..r2], s[l3..r3]依次连接之后得到字符串"anniversary".

输入描写叙述

输入有多组数据. 第一行有一个整数T (1≤T≤100), 表示測试数据组数. 然后对于每组数据:一行包括一个仅含小写字母的字符串s (1≤|s|≤100).

输出描写叙述

对于每组数据, 假设Soda能够找到这样三个子串, 输出"YES", 否则输出"NO".

输入例子

2
annivddfdersewwefary
nniversarya

输出例子

YES
NO

分析:对“anniversary“进行分段,然后暴力查找就可以。
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=610&pid=1002
代码清单:

#include<queue>
#include<stack>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;int get_index(string ss,string s,int p){ //暴力查找int slen=s.size();int sslen=ss.size();for(int i=p;i<=slen-sslen;i++){int first=1;for(int j=0;j<sslen;j++){if(ss[j]==s[i+j])continue;else{first=0;break;}}if(first){ return i+sslen; }}return -1;
}bool judge(string s1,string s2,string s3,string s){int pp=get_index(s1,s,0);if(pp==-1) return false;pp=get_index(s2,s,pp);if(pp==-1) return false;pp=get_index(s3,s,pp);if(pp==-1) return false;return true;
}int main(){int T;scanf("%d",&T);while(T--){string s;string str="anniversary";cin>>s;string s1="",s2,s3;bool ok=false;for(int i=1;i<=9;i++){ //分段s1+=str[i-1];for(int j=i;j<=9;j++){s2="";s3="";for(int k=i;k<=j;k++) s2+=str[k];for(int k=j+1;k<11;k++) s3+=str[k];if(judge(s1,s2,s3,s)){ok=true;break;}}if(ok) break;}if(ok) printf("YES\n");else printf("NO\n");}return 0;
}

BestCoder 1st Anniversary ($) 1002.Hidden String相关推荐

  1. 矩阵快速幂---BestCoder Round#8 1002

    当要求递推数列的第n项且n很大时,怎么快速求得第n项呢? 可以用矩阵快速幂来加速计算. 我们可以用矩阵来表示数列递推公式 比如fibonacci数列 可以表示为 [f(n)   f(n-1)] = [ ...

  2. hdu 5311 Hidden String(find,substr)

    Problem Description Today is the 1st anniversary of BestCoder. Soda, the contest manager, gets a str ...

  3. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II

    题目传送门 1 /* 2 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 3 当然有可能两个数和超过p,那么an ...

  4. 1st anniversary for my first job

    A simple state machine for my previous life. 06: Primary school ----> 11: Junior school ----> ...

  5. BestCoder 2nd Anniversary

    http://acm.hdu.edu.cn/search.php?field=problem&key=BestCoder+2nd+Anniversary&source=1&se ...

  6. BestCoder Round #80 1002

    HDU 5666 Segment 题意:给你条斜率为-1,常数项为q(q为质数)的直线,连接原点与直线上整数格点,问你在有多少个格点在形成的无数个三角形内,而不在线段上,结果对P取模. 思路:best ...

  7. BestCoder Round #86 1002 HDU 5805 ——NanoApe Loves Sequence

    题意 给定一个数列,随机从该数列里删除一个数,求该数列的的相邻之间的绝对值的最大值的和. 思路 两个数列来分别维护i位前面的相邻的绝对值的最大以及i后面的最大,枚举每一个可能删除的数,然后分别从左右和 ...

  8. hdu 4932 BestCoder Round #4 1002

    这题真是丧心病狂,引来今天的hack狂潮~ Miaomiao's Geometry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65 ...

  9. HDU5142 NPY and arithmetic progression BestCoder Round #23 1002

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5143 解题思路:BestCoder官方题解: 可以发现等差数列只有(123,234,1234和长度&g ...

最新文章

  1. 新人python2和python3的区别_未明学院:Python2与Python3的主要区别
  2. CISCO 路由器(2)
  3. 怎样用java编写日志_用JAVA写一个日志类程序以供大家学习
  4. html调试和js脚本调试
  5. (chap1 网络基础知识)通信类型
  6. mysql binlog 权限_MySQL如何开启binlog?binlog三种模式的分析
  7. Pad和Margin
  8. html登录页面的校验控件,HTML5一款有趣智能的密码输入界面控件
  9. 【C012】Python - 基础教程学习(三)
  10. 软件接口测试一个项目的实战,全网最全postman接口测试教程和接口项目实战~从入门到精通!!!...
  11. 如何在Angular 2项目中使用Bootstrap css库
  12. SpringBoot 集成Netty实现UDP Server
  13. 电影院售票系统mysql表格_电影院售票数据库系统设计.doc
  14. 不懂什么是 Java 中的锁?看看这篇你就明白了!
  15. 启动项目时出现java.io.EOFException异常
  16. C语言自由落体程序咋写,C语言实现 小球自由落体问题
  17. 性能测试-----基础知识
  18. LaTeX入门教程|自定义论文标题
  19. 使用python将doc的word文件转换成docx文件
  20. LAMP--MySQL数据库

热门文章

  1. 转程序员,都去写一写前端代码吧
  2. 转载-SQL Server各种导入导出数据方式的比较
  3. 在SQLserver数据库里设置作业的步骤
  4. 工厂方法模式与抽象工厂模式的区别
  5. Study on Android【三】--Intent消息传递
  6. 关于进程间通信的学习心得
  7. C#中在应用程序和DLL使用消息
  8. HTML教程-各窗口间相互操作(Frame Target)
  9. Java飞行记录器 JRockit Flight Recorder JFR诊断JVM的历史性能和操作
  10. C++11中std::forward_list单向链表的使用