hdu 5311 Hidden String 字符串
来源:互联网 发布:admaster数据分析 编辑:程序博客网 时间:2024/05/18 17:04
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,这种方法如果递归理解的好的话敲的比较快,而且不容易出错的。。
上代码:
#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");elseputs("NO");}return 0;}
0 0
- hdu 5311 Hidden String 字符串
- HDU 5311:Hidden String【字符串】
- 【HDU 5311 Hidden String】+ 字符串
- HDU 5311:Hidden String
- HDU 5311 Hidden String
- hdu 5311 Hidden String
- hdu 5311 Hidden String
- hdu 5311 Hidden String
- HDU 5311 Hidden String
- Hidden String 5311 (深搜+字符串)
- hdu 5311 Hidden String dfs
- hdu 5311 Hidden String(dfs)
- HDU 5311 Hidden String (DFS)
- [HDU] 5311 Hidden String [DFS]
- HDU 5311 Hidden String (优美的暴力)
- hdu 5311 Hidden String(dp+暴力dfs)
- hdu 5311 Hidden String(水)
- hdu 5311 Hidden String dp o(n)算法 深搜
- 正确处理浏览器在下载文件时HTTP头的编码问题(Content-Disposition)
- 几种排序算法综合比较(快速,归并,希尔,堆排序等)
- 交换a、b的值temp = a; a = b; b = temp;比a = a^b;b = a^b;a = a^b;快
- Java中IO小结
- HDU 4175 Class Schedule (暴力+一点dp)
- hdu 5311 Hidden String 字符串
- Android SDK Manager国内下载缓慢或不能下载的问题
- 常见的块状元素与内联元素
- leetCode 91.Decode Ways (解码方式) 解题思路和方法
- linux 进程等待 wait 、 waitpid
- [考试维护]时隔半年的考试系统
- 数据结构(二):线性表的使用原则以及链表的应用-稀疏矩阵的三元组表示
- 向PE中注入代码
- poj 2392 Space Elevator