第一组实例

aaaa

2

aa

aa



第二组

a

1

c



第三组

abcdef

2

abcd

bcd





第四组



abcdef

2

abcd

bcde

第五组

aaaa

2

a

aa



第六组

lgcstraightlalongahisnstreet

5

str

long

tree

biginteger

ellipse

#include<stdio.h>

#include<string.h>//考虑了很多实例

#include<stdlib.h>

#define N  1100000

char  s[N],str[1100][200];

struct node {

int start,end,index;

}hst[N],hen[N];

int cmp(const void *a,const void *b) {

return (*(struct node *)a).start>(*(struct node *)b).start?1:-1;

}

int compare(const void *a,const void *b) {

return (*(struct node *)a).end>(*(struct node *)b).end?1:-1;

}

int main() {

int n,max,index,to,ans,start,end,i,j;

while(scanf("%s",s)!=EOF) {

scanf("%d",&n);

index=0;

for(i=0;i<n;i++) {

scanf("%s",str[i]);

to=0;

for(j=0;j<i;j++)

if(strcmp(str[j],str[i])==0)//第一组

to=1;

if(to)

continue;

while(1) {

if(strstr(s+to,str[i])==NULL)

break;

hst[index].index=index;

hst[index].start=strstr(s+to,str[i])-&s[0];

hst[index].end=hst[index].start+strlen(str[i])-1;

hen[index]=hst[index];

to=hst[index].start+1;

index++;

}

}

if(index==0) {//第二组

printf("%d\n",strlen(s));

continue;

}

qsort(hst,index,sizeof(hst[0]),cmp);

qsort(hen,index,sizeof(hen[0]),compare);

   start=hen[0].end;

   end=strlen(s)-hst[index-1].start-1;

   max=end>start?end:start;

for(i=0;i<index;i++) {

           ans=0;

           for(j=0;j<index;j++)

  if(hen[j].index!=hst[i].index&&hen[j].end>=hst[i].start)  {

                  ans=hen[j].end-hst[i].start-1;

 break;

  }

  if(max<ans)

  max=ans;

}

printf("%d\n",max);

}

return 0;

}

fzu 2128的更多相关文章

  1. fzu 2128 AC自动机

    链接   http://acm.fzu.edu.cn/problem.php?pid=2128 解题方法  首先考虑暴力,,就是拿每一个字符串在匹配串里面找到所有位置,然后从头到尾不断更新最长的合理位 ...

  2. 福州大学第十届校赛 & fzu 2128最长子串

    思路: 对于每个子串,求出 母串中 所有该子串 的 开始和结束位置,保存在 mark数组中,求完所有子串后,对mark数组按 结束位置排序,然后 用后一个的结束位置 减去 前一个的 开始 位置 再 减 ...

  3. FZU 2128 最长子串

    题目链接:最长子串 思路:依次找出每个子串的在字符串中的首尾地址,所有子串先按照尾地址从小到大排序.然后首地址从小到大排. 遍历一遍每个子串的首地址和它后面相邻子串的尾地址之差-1, 第一个子串的首地 ...

  4. 最长子串(FZU2128)

    最长子串 Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status  ...

  5. fzu Problem 2128 最长子串(KMP + strstr 经典好题)

     Problem Description 问题很简单,给你一个字符串s,问s的子串中不包含s1,s2...sn的最长串有多长.  Input 输入包含多组数据.第一行为字符串s,字符串s的长度1到10 ...

  6. FZU 2137 奇异字符串 后缀树组+RMQ

    题目连接:http://acm.fzu.edu.cn/problem.php?pid=2137 题解: 枚举x位置,向左右延伸计算答案 如何计算答案:对字符串建立SA,那么对于想双延伸的长度L,假如有 ...

  7. FZU 1914 单调队列

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=1914 题意: 给出一个数列,如果它的前i(1<=i<=n)项和都是正的,那么这个数列是正的,问这个 ...

  8. ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】

     FZU 2105  Digits Count Time Limit:10000MS     Memory Limit:262144KB     64bit IO Format:%I64d & ...

  9. FZU 2112 并查集、欧拉通路

    原题:http://acm.fzu.edu.cn/problem.php?pid=2112 首先是,票上没有提到的点是不需要去的. 然后我们先考虑这个图有几个连通分量,我们可以用一个并查集来维护,假设 ...

随机推荐

  1. atoi函数——将字符串转换为整数

    atoi在一个叫<cstdlib>的库里,可以把字符串直接转换为整数,贼强势. 还有一个atof,就是换成浮点数,实质上是一样的. 例子: #include<cstdlib> ...

  2. Spark 机器学习------逻辑回归

    package Spark_MLlib import javassist.bytecode.SignatureAttribute.ArrayType import org.apache.spark.s ...

  3. PCB Genesis 无需启动Xmanager图形窗口运行脚本 实现方法

    从事PCB工程行业的都知道,启动Genesis需2个exe程序(Xmanager.exe与get.exe)需一起启动才可以打开我们熟悉的软件, 而Xmanager是图形窗口是给用户UI交互使用的,如果 ...

  4. [Swift通天遁地]二、表格表单-(7)电子邮件Mail:实现单元格左右滑动调出功能按钮

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. markdownpad2下载安装教程

    1.下载安装 http://markdownpad.com/download/markdownpad2-setup.exe 直接下载,安装过程中提醒要安装微软的一个什么环境,不用理会直接跳过,实测没有 ...

  6. 【转】Linux之printf命令

    转自:http://blog.chinaunix.net/uid-9525959-id-2001528.html printf FORMAT [ARGUMENT]... printf OPTION [ ...

  7. Hadoop Hive概念学习系列之hive与依赖环境的交互(二十一)

    hive与环境的交互,算是一个小知识点,但掌握不菲! 如何在hive里,也达到这样呢? 不需要这样啦,因为,hive是建立在hadoop之上,启动hive,相当于,就是,hadoop jar ** h ...

  8. 【Java设计模式】工厂模式

    简单工厂模式 简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类.比如下图中的鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标. 示例代码: //一个产品接 ...

  9. Mac下CUDA开启及Tensorflow-gpu 1.4 安装

    本文由@ray 出品,转载请注明出处.  文章链接:http://www.cnblogs.com/wolfray/p/8040694.html 在之前的文章中,笔者介绍了在Mac下安装Tensorfl ...

  10. 01--Java集合知识

    一.Java集合概览 Java中集合分2大块,Collection和Map,分别代表不同功能的集合类对象,整体结构图如下: Collection├List│├LinkedList│├ArrayList ...