LCS???
难度级别:C; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
试题描述
输入两个字符串A、B,输出他们的最长连续公共子串长度。
输入
第一行为一个字符串A。
第二行为一个字符串B。
输出
输出他们的最长连续公共子串长度。
输入示例
ababab
bababbabb
输出示例
5
其他说明
1<=|A|,|B|<=100000
A、B均由小写字母a或b组成。

题解:快看这里还有一道LCS快去捉了它!

 #include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<queue>
#include<cstring>
#define PAU putchar(' ')
#define ENT putchar('\n')
using namespace std;
const int maxn=+,sig=;
struct SAM{
struct node{
int len;node*p,*tx[sig];
}sam[maxn<<],*nodecnt,*root,*x;
void init(){nodecnt=sam;return;}
node*newnode(int len=){node*t=nodecnt++;t->len=len;return t;}
void extend(int pos,char ch){
int c=ch-'a';node*p=x;x=newnode(pos+);
for(;p&&!p->tx[c];p=p->p) p->tx[c]=x;
if(!p) x->p=root;
else{ node*q=p->tx[c];
if(q->len==p->len+) x->p=q;
else{ node*r=newnode();
r[]=q[];r->len=p->len+;q->p=x->p=r;
for(;p&&p->tx[c]==q;p=p->p) p->tx[c]=r;
}
} return;
}
void build(char*s){x=root=newnode();for(int i=;s[i];i++)extend(i,s[i]);return;}
int query(char*t){
int len=strlen(t),ans=;node*p=root;
for(int i=,L=;i<len;i++){
int c=t[i]-'a';
if(p->tx[c])L++,p=p->tx[c];
else{
for(;p&&!p->tx[c];p=p->p);
if(p) L=p->len+,p=p->tx[c];
else p=root,L=;
} ans=max(L,ans);
} return ans;
}
}sol;
inline int read(){
int x=,sig=;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')sig=-;ch=getchar();}
while(isdigit(ch))x=*x+ch-'',ch=getchar();
return x*=sig;
}
inline void write(int x){
if(x==){putchar('');return;}if(x<)putchar('-'),x=-x;
int len=,buf[];while(x)buf[len++]=x%,x/=;
for(int i=len-;i>=;i--)putchar(buf[i]+'');return;
}
char s[maxn],t[maxn];
void init(){
scanf("%s%s",s,t);
sol.init();sol.build(s);write(sol.query(t));
return;
}
void work(){
return;
}
void print(){
return;
}
int main(){init();work();print();return ;}

COJ 0885 LCS???的更多相关文章

  1. 【奇怪现象】用联通访问某些ASP.NET网站会产生__EVENTVALIDATION字段,用电信却只有:__VIEWSTATE。【正常】?原因?

    [奇怪现象]用联通访问某些ASP.NET网站会产生__EVENTVALIDATION字段,用电信却只有:__VIEWSTATE.[正常]?原因? 对于__VIEWSTATE和__EVENTVALIDA ...

  2. C#中 ? 和?? 的用法

    C#中 ?? 和? 的意思 1.? 如果直接定义一个 值类型,给负值null:就会提示“无法将 Null转换成‘值类型(比如:int)’,因为他是一种不可为null的值 de类型” 例如 int in ...

  3. [TYVJ] P1025 单数?双数?

    单数?双数? 背景 Background USACO OCT09 1ST   描述 Description Bessie那惨无人道的二年级老师搞了一个有 N (1 <= N <= 100) ...

  4. 为什么需要异步?why?来看一段代码。

    为什么需要异步?why?来看一段代码. 问题1: for(var i=0;i<100000;i++){ } alert('hello world!!!'); 这段代码的意思是执行100...次后 ...

  5. http?https?相对协议?

    1 1 1 将CDN 上所有链接的协议默认设置为“相对协议”,也就是链接以 // 开头,前面去掉了 http: 或 https: 字样, 这样做的好处是浏览器能够根据你的网站所采用的协议来自动加载 C ...

  6. 假设result是一个float型变量,其值为27.32,value是一个int型变量,其值为15执行以下语句后,两个便利的值分别是多少?为什么?

    假设result是一个float型变量,其值为27.32,value是一个int型变量,其值为15执行以下语句后,两个便利的值分别是多少?为什么? 在执行这条语句的过程中,保存在result中的值被读 ...

  7. 假设result 是一个float型变量,value是一个int型变量。执行以下赋值语句以后,变量value将是什么类型?为什么?

    假设result 是一个float型变量,value是一个int型变量.执行以下赋值语句以后,变量value将是什么类型?为什么? 在执行这条语句的过程中,保存在vulue变量中的值被读取出来并转化为 ...

  8. 下面哪些是无效的Java标识?为什么?

    下面哪些是无效的Java标识?为什么? a.Factorial b.anExtremelyLongIdebtifierifyouAsKMe c.2ndLevel d.level2 e.MAX_SIZE ...

  9. 【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?

    原文链接:http://www.51testing.com/html/49/n-3721249.html 前言 当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择wrk?jmeter?loc ...

随机推荐

  1. nodejs这个过程POST求

    下面是一个web登陆模拟过程.当我们问一个链接,你得到一个表格,然后填写相应的表格值,然后提交登陆. var http = require('http'); var querystring = req ...

  2. php 二维数组转换成树状数组(转)

    <?php/** * @param array $list 要转换的结果集 * @param string $pid parent标记字段 * @param string $level leve ...

  3. 如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测

      系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦.所以,在实践中会用到很多工 ...

  4. iOS开发UI篇-懒加载、重写setter方法赋值

    一.懒加载 1.懒加载定义 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再 ...

  5. Oracle数据库用户数据完整备份与恢复

    使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1   PL/SQL->工具->导 ...

  6. PC端手机访问跳转手机站点

    第一种: var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.sr ...

  7. 登录模块需要用到session留底

    <% HttpSession sessions=request.getSession(); Object sessionValues=sessions.getAttribute("ui ...

  8. Linq101-Join

    using System; using System.Collections.Generic; using System.Linq; namespace Linq101 { internal clas ...

  9. model 和 view 实现思考

    采用model.view = view 和  view.model=model 进行双向绑定,还有一种方案是采用id号进行绑定,viewmodel的views 和 models 属性存放所有的id 映 ...

  10. 利用后缀数组(suffix array)求最长公共子串(longest common substring)

    摘要:本文讨论了最长公共子串的的相关算法的时间复杂度,然后在后缀数组的基础上提出了一个时间复杂度为o(n^2*logn),空间复杂度为o(n)的算法.该算法虽然不及动态规划和后缀树算法的复杂度低,但其 ...