hdoj 5311 Hidden String 【dfs(递归)】【周赛】
来源:互联网 发布:淘宝lol代练 编辑:程序博客网 时间:2024/06/10 18:56
Hidden String
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1691 Accepted Submission(s): 597
Problem Description
Today is the 1st anniversary of BestCoder. Soda, the contest manager, gets a string s of length n . He wants to find three nonoverlapping substrings s[l1..r1] , s[l2..r2] , s[l3..r3] that:
1.1≤l1≤r1<l2≤r2<l3≤r3≤n
2. The concatenation ofs[l1..r1] , s[l2..r2] , s[l3..r3] is "anniversary".
1.
2. The concatenation of
Input
There are multiple test cases. The first line of input contains an integer T (1≤T≤100) , indicating the number of test cases. For each test case:
There's a line containing a strings (1≤|s|≤100) consisting of lowercase English letters.
There's a line containing a string
Output
For each test case, output "YES" (without the quotes) if Soda can find such thress substrings, otherwise output "NO" (without the quotes).
Sample Input
2annivddfdersewwefarynniversarya
Sample Output
YESNO
Source
BestCoder 1st Anniversary ($)
Recommend
hujie | We have carefully selected several similar problems for you: 5594 5593 5592 5591 5590
这道题用的是递归的方法,因为如果你用遍历的方法的时候如果输入这个样例就会出错:
的时候就会出错!因为每次都尽可能多的将字符存到前面的子串里面,最终前面有很多和主串相同的字符,但是最后有一个整的,
//不确定,第三个起点的位置也不确定所以就要采用递归的思想来查找所有的
//可能的起点所能造成的结果中有没有满足题意的结果!
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;char a[105];char b[20]="anniversary";int len;int flag;void dfs(int p1,int p2,int cnt){if(cnt>3){return;}if(p2>=11){flag=1;return;}for(int i=p1;i<len;i++){int x=i,y=p2;while(a[x]==b[y])x++,y++;dfs(x+1,y,cnt+1);//不相等,那么就继续往后找下一个区间 } }int main(){int T;scanf("%d",&T);while(T--){flag=0;scanf("%s",a);len=strlen(a);dfs(0,0,0);if(flag)printf("YES\n");elseprintf("NO\n");}return 0;}
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;char a[105];char b[20]="anniversary";int main(){int T;scanf("%d",&T);while(T--){scanf("%s",a);int len=strlen(a),t=0,cnt=0,flag=0;for(int i=0;i<len;i++){if(a[i]==b[t]){t++;if(flag==0)//刚开始匹配成功 {flag=1;cnt++;}}else{flag=0;}}if(cnt<=3&&t==11){printf("YES\n");}else{printf("NO\n");}}return 0;}
0 0
- hdoj 5311 Hidden String 【dfs(递归)】【周赛】
- hdoj 5311 Hidden String 【dfs】
- HDOJ 5311 Hidden String(DFS不错的题)
- hdoj--1034--Hidden String(dfs)
- HDOJ 5311-Hidden String【深搜】
- HDOJ 5311 Hidden String(枚举)
- HDOJ-----5311---Hidden String---暴力
- hdu 5311 Hidden String dfs
- hdu 5311 Hidden String(dfs)
- HDU 5311 Hidden String (DFS)
- [HDU] 5311 Hidden String [DFS]
- hdoj 5311 Hidden String 【KMP + 暴力】
- hdoj 5311 Hidden String (暴力枚举)
- hdu 5311 Hidden String(dp+暴力dfs)
- HDOJ 5533-Hidden String
- Hidden String(递归)
- HDU 5311:Hidden String
- HDU 5311 Hidden String
- 卫星输入任务的语义解析
- os之进程管理学习记录
- ContentProvider 总结
- Struts2框架学习(三) 数据处理
- 安装mongoDB
- hdoj 5311 Hidden String 【dfs(递归)】【周赛】
- 自定义dialog的两种方式
- ThinkPHP框架九上传文件和生成缩略图
- Linux常用命令(二)文件目录命令
- 转义字符序列及其功能
- 新的开始
- CentOS7 本地源搭建
- Linux进程间通信(IPC)编程实践(十)System V信号量---PV操作经典题目
- String类的常用方法