HDU 5510 Bazinga(KMP||strstr神器+些许优化)
来源:互联网 发布:java去掉括号内容 编辑:程序博客网 时间:2024/05/18 07:40
Ladies and gentlemen, please sit up straight.
Don't tilt your head. I'm serious.
Forn given strings S1,S2,⋯,Sn , labelled from 1 to n , you should find the largest i (1≤i≤n) such that there exists an integer j (1≤j<i) and Sj is not a substring of Si .
A substring of a stringSi is another string that occurs in Si . For example, ``ruiz" is a substring of ``ruizhang", and ``rzhang" is not a substring of ``ruizhang".
Don't tilt your head. I'm serious.
For
A substring of a string
For each test case, the first line is the positive integer
All strings are given in lower-case letters and strings are no longer than
45ababczabcabcdzabcd4youlovinyouaboutlovinyouallaboutlovinyou5dedefabcdabcdeabcdef3abaccc
Case #1: 4Case #2: -1Case #3: 4Case #4: 3
题解:
题意:
让你从一堆有编号的串中找出最后面的一个i,使得在[1,i-1]中可以找到一个串s[j]不是s[i]的子串
思路:
直接搞看上去都是要炸的,所以要做一些优化,比如如果s[j-1]是s[j]的子串,那么如果s[j-1]不是s[i]的子串,那么s[j]也不是,反之如果s[j]是s[i]的子串,那么s[j-1]也一定是s[i]的子串,这样想预处理扫一遍数组,将前后有这种包含关系的标记一下就好了,然后从后面往前暴力扫
代码:
#include<iostream>#include<cstring>#include<stdio.h>#include<math.h>#include<string>#include<stdio.h>#include<queue>#include<stack>#include<map>#include<vector>#include<deque>#include<algorithm>#define ll long long#define INF 1008611111#define M (t[k].l+t[k].r)/2#define lson k*2#define rson k*2+1using namespace std;char s[505][2005];int vis[505];int main(){ int i,j,k,test,q,n,d; scanf("%d",&test); for(q=1;q<=test;q++) { scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%s",s[i]); vis[i]=0; } printf("Case #%d: ",q); d=-1; for(i=2;i<=n;i++) { if(strstr(s[i],s[i-1])!=NULL) vis[i-1]=1; } for(i=n;i>=1;i--) { for(j=1;j<i;j++) { if(vis[j]) continue; if(strstr(s[i],s[j])==NULL) { d=i; goto loop; } } } loop:; printf("%d\n",d); } return 0;}
阅读全文
0 0
- HDU 5510 Bazinga(KMP||strstr神器+些许优化)
- hdu 5510 Bazinga 剪枝+find()/strstr()/KMP
- HDU 5510 Bazinga 【strstr】
- HDU 5510 Bazinga (KMP)
- HDU 5510 Bazinga(KMP)
- HDU-5510 Bazinga(KMP)
- HDU 5510 Bazinga (KMP)
- hdu 5510 -Bazinga(kmp)
- hdu 5510 Bazinga(kmp)
- HDU 5510 Bazinga 【kmp】
- HDU 5510 Bazinga(KMP)
- HDU 5510 Bazinga(kmp)
- Hdu 5510 Bazinga(KMP+尺取法)
- HDU 5510 Bazinga (kmp + 小剪枝)
- hdu 5510Bazinga(kmp+思维)
- 字符串匹配(strstr)—— Bazinga ( HDU 5510 )
- hdu 5510 Bazinga(KMP+剪枝)
- hdu 5510 Bazinga (字符串匹配 kmp/strstr加个剪枝←据说这些都不是正解)
- [cnblogs镜像]页面定制CSS代码初探(一):页面变宽 文本自动换行 图片按比缩放
- c++初识
- 动态添加元素后 js点击 DOM查找不到
- WebService详解
- 1021. 个位数统计 (15)
- HDU 5510 Bazinga(KMP||strstr神器+些许优化)
- 栈的简单使用和运行结果
- 《Effective Java》(23~25)阅读笔记
- [cnblogs镜像]页面定制CSS代码初探(二):自定义h2标题样式 添加阴影 添加底色 等
- 【洛谷3335】【ZJOI2013】蚂蚁寻路
- [cnblogs镜像]Xcode 下“ did not have any applicable content ”分析及解决
- android-SVG
- [cnblogs镜像]Xcode7 下导入第三方库 图文介绍
- Android学习笔记13---实时搜索框