hdu 5311 Hidden String 字符串
BC一周年的题。这道题做比赛的时候A了小数据,终于评判的时候还是挂了,看来还是不认真思考的问题啊。交的时候
都没有信心过肯定是不行的。认真思考。敲一发,有信心过才是真正的acmer。赛后认真想了想,发现了好多bug,我
用的3层循环暴力做的。认真思考后敲的,认真思考后敲的。认真思考后敲的(重要的事说三遍)
贴代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char a[105];
char b[20]="anniversary"; int main()
{
int t,p,i,j,x,k,flag,kk,kkk;
scanf("%d",&t);
while(t--)
{
flag = 0;
memset(a,sizeof(a),'\0');
scanf("%s",a);
int len = strlen(a);
for(i=0; i<len; i++)
{
k =0;
if(a[i] == b[k])
{
p = i+1;
k = 1;
while(a[p]==b[k]&&a[p]!='\0'&&b[k]!='\0')
{
p++;
k++;
}
if(k==11)
{
printf("YES\n");
flag = 1;
}
if(flag == 1)
{
break;
}
for(j=p+1; j<len; j++)
{
kk = k;
if(a[j] == b[kk])
{
p = j+1;
kk++;
while(a[p]==b[kk]&&a[p]!='\0'&&b[kk]!='\0')
{
p++;
kk++;
}
if(kk==11)
{
printf("YES\n");
flag = 1;
break;
}
for(x=p+1; x<len; x++)
{
kkk = kk;
if(a[x] == b[kkk])
{
p = x+1;
kkk++;
while(a[p]==b[kkk]&&a[p]!='\0'&&b[kkk]!='\0')
{
p++;
kkk++;
}
if(kkk == 11)
{
printf("YES\n");
flag = 1;
break;
}
}
}
if(flag == 1 )
break;
}
}
if(flag == 1)
break;
}
if(flag==1)
break;
}
if(flag == 0)
{
printf("NO\n");
}
}
return 0;
}
看了邓大师的代码后敲的,差点儿一样。
。。用的是dfs深搜,只是我感觉还没有三层循环更有效率,这个有可能出现搜了好多层的情况,能够加一个推断。就是cnt>=3的时候直接return 0,这样的方法假设递归理解的好的话敲的比較快。并且不easy出错的。。
上代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char a[105];
char b[20]="anniversary";
int lena,lenb = 11;
int dfs(int a1,int b1,int cnt)
{
if(cnt >= 3)
return 0;
int b2 = b1;
int j;
for(int i=a1; i<lena && b1<11; i++)
{
b1 = b2;
if(a[i] == b[b1])
{
for(j=i+1,b1++; j<lena && b1<11; j++,b1++)
{
if(a[j] != b[b1])
{
break;
}
}
if(b1==11 && cnt<=2) return 1;
if(dfs(j,b1,cnt+1)) return 1;
}
}
return 0;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(a,'\0',sizeof(a));
scanf("%s",a);
lena = strlen(a);
if(dfs(0,0,0))
puts("YES");
else
puts("NO");
}
return 0;
}
hdu 5311 Hidden String 字符串的更多相关文章
- hdu 5311 Hidden String
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5311 Hidden String Description Today is the 1st anniv ...
- hdu 5311 Hidden String (BestCoder 1st Anniversary ($))(深搜)
http://acm.hdu.edu.cn/showproblem.php?pid=5311 Hidden String Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5311 Hidden String (优美的暴力)
Hidden String Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ...
- HDU 5311 Hidden String (暴力)
题意:今天是BestCoder一周年纪念日. 比赛管理员Soda有一个长度为n的字符串s. 他想要知道能否找到s的三个互不相交的子串s[l1..r1], s[l2..r2], s[l3..r3]满足下 ...
- hdu 5311 Hidden String(find,substr)
Problem Description Today is the 1st anniversary of BestCoder. Soda, the contest manager, gets a str ...
- hdoj 5311 Hidden String(KMP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5311 思路分析:该问题要求在字符串中是否存在三个不相交的子串s[l1..r1], s[l2..r2], ...
- HDU 5311:Hidden String
Hidden String Accepts: 437 Submissions: 2174 Time Limit: 2000/1000 MS (Java/Others) Memory Limit ...
- BestCoder 1st Anniversary B.Hidden String DFS
B. Hidden String Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/co ...
- BestCoder 1st Anniversary ($) 1002.Hidden String
Hidden String Accepts: 437 Submissions: 2174 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 26 ...
随机推荐
- Flask实战第41天:发送短信验证码
本项目使用的短信运营商是阿里云.使用淘宝账号登录阿里云控制台.在“产品与服务”中搜索“短信”进入短信服务 获取AccessKey 输入子账户用户名 权限选择管理短信服务 签名管理:申请签名 模板管理: ...
- 函数的扩展--ES6
箭头函数 由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号. var f = () => ({a:1}); f(); // 返回 {a: 1} 若写成: var ...
- 【Tarjan算法】【DFS】Petrozavodsk Summer Training Camp 2016 Day 9: AtCoder Japanese Problems Selection, Thursday, September 1, 2016 Problem B. Point Pairs
这份代码可以作为找割边的模板.割边分割出来的部分是无向图的 边-双连通分量. 平面上2*n+1个点,在同一横坐标上的点之间可以任意两两匹配.同一纵坐标上的点之间也可以.问你对于所有的点i,输出i被移除 ...
- [BZOJ1004](HNOI 2008) Cards
Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目 前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张 ...
- sqlserver 计算数据库时间差
介绍:datediff(datepart,startdate,enddate) 返回间隔datepart 的数 SELECT datediff(yy,'2010-06-1 10:10',GETDATE ...
- 兼容IE8
由于IE8不支持HTML5,而它又是Win7的默认浏览器,我们即使讨厌它,在这几年却也拿它没办法. 最近做了个需要兼容IE8的项目,不可避免地用了HTML5+CSS3,甚至canvas和svg,做兼容 ...
- KVM使用virsh console无法连接的解决办法(转)
一.问题描述: KVM中宿主机通过console无法连接客户机,卡在这里不动. # virsh console vm01 Connected to domain vm01 Escape charact ...
- word标题编号变成黑块
把光标放置在黑块的后面 在键盘上按左方向键,则黑块变灰色(为选中状态) 然后ctrl+shift+s, 出现窗口“apply styles" 点击"reapply", 搞 ...
- Java_导出Excel
导出的Excel标题.Sheet名称.数据内容都可以使用中文 一.pom.xml引入jar包 1 2 3 4 5 <dependency> <groupId ...
- easyui 后台系统引入富文本编辑器的使用
1.首先,想在项目中引入相关的jar包 2.html页面中加入相关的引用 <!-- kindeditor --> <script type="text/javascript ...