BestCoder 1st Anniversary ($) 1002.Hidden String
Hidden String
问题描写叙述
今天是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相关推荐
- 矩阵快速幂---BestCoder Round#8 1002
当要求递推数列的第n项且n很大时,怎么快速求得第n项呢? 可以用矩阵快速幂来加速计算. 我们可以用矩阵来表示数列递推公式 比如fibonacci数列 可以表示为 [f(n) f(n-1)] = [ ...
- hdu 5311 Hidden String(find,substr)
Problem Description Today is the 1st anniversary of BestCoder. Soda, the contest manager, gets a str ...
- 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
题目传送门 1 /* 2 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 3 当然有可能两个数和超过p,那么an ...
- 1st anniversary for my first job
A simple state machine for my previous life. 06: Primary school ----> 11: Junior school ----> ...
- BestCoder 2nd Anniversary
http://acm.hdu.edu.cn/search.php?field=problem&key=BestCoder+2nd+Anniversary&source=1&se ...
- BestCoder Round #80 1002
HDU 5666 Segment 题意:给你条斜率为-1,常数项为q(q为质数)的直线,连接原点与直线上整数格点,问你在有多少个格点在形成的无数个三角形内,而不在线段上,结果对P取模. 思路:best ...
- BestCoder Round #86 1002 HDU 5805 ——NanoApe Loves Sequence
题意 给定一个数列,随机从该数列里删除一个数,求该数列的的相邻之间的绝对值的最大值的和. 思路 两个数列来分别维护i位前面的相邻的绝对值的最大以及i后面的最大,枚举每一个可能删除的数,然后分别从左右和 ...
- hdu 4932 BestCoder Round #4 1002
这题真是丧心病狂,引来今天的hack狂潮~ Miaomiao's Geometry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65 ...
- HDU5142 NPY and arithmetic progression BestCoder Round #23 1002
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5143 解题思路:BestCoder官方题解: 可以发现等差数列只有(123,234,1234和长度&g ...
最新文章
- 新人python2和python3的区别_未明学院:Python2与Python3的主要区别
- CISCO 路由器(2)
- 怎样用java编写日志_用JAVA写一个日志类程序以供大家学习
- html调试和js脚本调试
- (chap1 网络基础知识)通信类型
- mysql binlog 权限_MySQL如何开启binlog?binlog三种模式的分析
- Pad和Margin
- html登录页面的校验控件,HTML5一款有趣智能的密码输入界面控件
- 【C012】Python - 基础教程学习(三)
- 软件接口测试一个项目的实战,全网最全postman接口测试教程和接口项目实战~从入门到精通!!!...
- 如何在Angular 2项目中使用Bootstrap css库
- SpringBoot 集成Netty实现UDP Server
- 电影院售票系统mysql表格_电影院售票数据库系统设计.doc
- 不懂什么是 Java 中的锁?看看这篇你就明白了!
- 启动项目时出现java.io.EOFException异常
- C语言自由落体程序咋写,C语言实现 小球自由落体问题
- 性能测试-----基础知识
- LaTeX入门教程|自定义论文标题
- 使用python将doc的word文件转换成docx文件
- LAMP--MySQL数据库