Description

尽管Murphyc赶在学级裁判开始前进入了未来机关的控制室,但学级裁判已经被设置为不可中断.
虽然之前利用魔法修改识别码时已经尽量减少魔力消耗,但此刻魔力仍是所剩无几。Murphyc无力地坐到了地上,眼睁睁的看着Chiaki被处以“学级裁判”.
Chiaki在弥留之际:

私の方こそ・・・ありがとう

みんなの事・・・忘れないよ・・・
                           ずっとずっと・・・忘れないよ・・・
                           この先も・・・どこかでみんなの事を応援しているからね

だって・・・ずっと仲间だもん

伤心欲绝的Murphyc一个人带着Chiaki最后的话语离开了未来机关。
    尽管Murphyc从绝望残党手中逃脱,但是他发现Chiaki最后的录音被绝望所污染,为了恢复录音,Murphyc需要知道被污染的录音的最长未被污染音段,他很快解决了这个问题,回归了原来的世界.
    Murphyc的故事到此结束,但是ACMer的问题并没有解决,给你两个串(仅由小写字母组成),请问最长公共子串的长度.

Input

第一行输入长度不超过3e5的串s1
第二行输入长度不超过3e5的串s2

Output

最长公共子串(Longest Common Substring)的长度
若不存在LCS,输出0

Sample Input

watashinokatakosoarigato
minnanokotowasurenaiyo

Sample Output

3

题解:

后缀自动机(SAM)裸题,具体解释可以看如下

其实吧后缀数组(SA)利用height[]也可以解决这个问题,不过DA的SA肯定会被卡常,DC3的应该卡不到,但其实我造的数据还蛮水的hhh

不会SAM的建议先学AC自动机了解一下自动机理论还有SA,最后再去学SAM.

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3e5+5;
inline int read()
{char ch=getchar();int i=0,f=1;while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){i=(i<<3)+(i<<1)+ch-'0';ch=getchar();}return i*f;
}
struct SAM
{static const int KN = N << 1;static const int KM = 27;int fail[KN], net[KN][KM], len[KN], cnt, root;int rig[KN],sum[KN];int newnode(int _len){memset(net[cnt], -1, sizeof(net[cnt]));
//        fail[cnt] = -1;len[cnt] = _len;return cnt++;}void init(){cnt = 0;memset(fail,-1,sizeof(fail));root = newnode(0);}int add(int p, int x)//u--np,v---p{int np=newnode(len[p]+1);rig[np]=1;while(~p && net[p][x] == -1)    net[p][x] = np, p = fail[p];if(p == -1) fail[np] = root;else{int q = net[p][x];if(len[q] == len[p] + 1)    fail[np] = q;else{int nq = newnode(len[p] + 1);memcpy(net[nq], net[q], sizeof(net[q]));fail[nq] = fail[q];fail[q] = fail[np] = nq;while(~p && net[p][x] == q) net[p][x] = nq, p = fail[p];}}return np;}void build(char* s, char ch){int now = root;for(int i = 0; s[i]; ++i)   now = add(now, s[i] - ch);}int ord[KN], pri[KN];void topo(){int maxVal=0;memset(pri, 0, sizeof(pri));for (int i = 0; i < cnt; ++i) maxVal = max(maxVal, len[i]), ++ pri[len[i]];for (int i = 1; i <= maxVal; ++i) pri[i] += pri[i - 1];for (int i = 0; i < cnt; ++i) ord[--pri[len[i]]] = i;}void gao(int k){topo();}
} sam;
char s[N];
char ss[N];
int main()
{freopen("stdin.txt","r",stdin);freopen("stdout.txt","w",stdout);scanf("%s",s);scanf("%s",ss);int len1,len2;len1=strlen(s),len2=strlen(ss);sam.init();sam.build(s,'a');sam.topo();int cnt=0,pos=0,ans=0;for(int i=0; i<strlen(ss); i++){while(~pos&&sam.net[pos][ss[i]-'a']==-1) pos=sam.fail[pos];if(pos==-1) pos=0,cnt=0;else cnt=min(sam.len[pos],cnt)+1,pos=sam.net[pos][ss[i]-'a'],ans=max(ans,cnt);}printf("%d\n",ans);
}

你面对以希望为名的绝望微笑相关推荐

  1. 你面对以希望为名的绝望微笑(未完成)

    Problem:你面对以希望为名的绝望微笑 Description: 尽管Murphyc赶在学级裁判开始前进入了未来机关的控制室,但学级裁判已经被设置为不可中断. 虽然之前利用魔法修改识别码时已经尽量 ...

  2. 《弹丸论破·希望学园与绝望高中生》:浅谈颠覆性的推理动作玩法

    <逆转裁判>&<雷顿教授>&<弹丸论破> 颠覆了文字冒险类型的佼佼者 2001年的10月份,卡普空的<逆转裁判>横空出世,颠覆了文字冒险 ...

  3. 人生无意义,才更值得过,推石上山的搏斗本身,足以充实一颗人心,认清生活的荒诞,对它报之以微笑,就是对抗荒诞的最好方式

    此文为头条视频节目的讲稿,大家喜欢看视频节目的可以头条搜索[渊默]观看. 若人生无意义该如何选择?自杀,宗教信仰,还是奋起反抗,带着自由与激情生活.为生命赋予何种意义,是我们的自由.专注当下,忘记明天 ...

  4. 【正一专栏】读《摆渡人》——原来你在这里

    读<摆渡人>--原来你在这里 世界上真的有灵魂吗?小的时候有时候一个人发呆,总是想一些世界,尤其是关于宇宙的,100年后世界会变成什么样子,那个时候我已经不在了,但是我的灵魂去了哪里,在另 ...

  5. 十二星座、超完美解析!

    一.双鱼座        代表人物:夜神月(死亡笔记)      双鱼座的人是敏感而又善良的,虽然他们的生命里充满了矛盾,但他们的矛盾与双子纯粹的对立不同,喜欢幻想未来的鱼鱼们的矛盾是源于他们的敏感的 ...

  6. 白岩松:不平静,就不会幸福

        一  走在人群中,我习惯看一看周围人的手腕,那里似乎藏着一个属于当代中国人的内心秘密,从不言说,却日益增多.  越来越多的人,不分男女,会戴上一个手串,这其中,不乏有人仅仅是为了装饰:更多的却 ...

  7. 白岩松:不平静,就不会幸福 幸福在哪里(代序)

    白岩松:不平静,就不会幸福 幸福在哪里(代序) 一 走在人群中,我习惯看一看周围人的手腕,那里似乎藏着一个属于当代中国人的内心秘密,从不言说,却日益增多. 越来越多的人,不分男女,会戴上一个手串,这其 ...

  8. 二十岁决定男人的一生

    第1节:完成三十岁前的积累,准备做一个成功的男人(1) Chapter Six 完成三十岁前的积累,准备做一个成功的男人  二十几岁是褪尽青涩,走向成熟的男人:二十几岁是很有紧迫感的年龄,如果男人到了 ...

  9. 读书笔记—水煮三国(纪念版)

    水煮三国(纪念版) 作者:成君忆 再版前言 我开始试图从"用人文历史来诠释管理"的写作方式,走向"用人文历史来研究管理"的求学方式. 第一章 创业时代的七堂必修 ...

最新文章

  1. 《JavaScript高级程序设计》阅读笔记(二十一):JavaScript中的XML
  2. 转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
  3. python虚拟环境另类的搭建
  4. 01_Influxdb1.7.7的安装配置启动
  5. 华为云推UGO:一手抓结构迁移,一手抓SQL转换
  6. POJ1273 裸裸的网络流
  7. 使用js、jquery完成省市二级联动
  8. sqlserver2014导出mysql_sql server2014如何备份数据库-sql server2014备份数据库教程 - 河东软件园...
  9. mssql 存储过程 group by 集合并逗号要开某字段
  10. 在windows server 2003服务器上提供NTP时间同步服务
  11. BZOJ 1934 善意的投票
  12. 天猫精灵 python_天猫精灵控制家里的灯
  13. PDF文件找回正确密码
  14. win2008服务器系统玩红警,win8系统玩不了红色警戒2如何解决?win8系统玩不了红色警戒2解决方法...
  15. 应用层故事难讲 公链集体押注DeFi背后 是黔驴技穷的无奈之举?
  16. 朋友圈发布时间(Date、DateFormat、Calendar)
  17. Windows server DHCP服务器搭建
  18. 汉武帝不仅需要建功立业的董仲舒、汲黯、卫青,也需要能让他整天快乐的东方朔...
  19. c语言cos取整 数组,c语言如何取整
  20. 分布式光伏站远程监控组网解决方案

热门文章

  1. 有限服务器延时计算_新建三座超级数据中心,增超百万台服务器 阿里云数据中心选址有何逻辑?...
  2. scala maven plugin
  3. python与vfp做桌面数据库_VFP数据库系统开发实例(附图)
  4. inrange函数_Python 初学者必备的常用内置函数
  5. oracle 数据库运维技术,Oracle数据库智能运维标准化工艺研究-orastar-DIY数据库运维工具-第1期 导论篇...
  6. c 调用java post方法_C#调用Java方法(详细实例)
  7. 力士乐伺服电机编码器调零_力士乐伺服电机编码器故障维修来这里
  8. android SharedPreferences设置初始密码,并修改密码
  9. NeurIPS 2021有哪些值得读的NLP论文?
  10. 今日arXiv精选 | TNNLS/ICCV/TIP/ACM MM/CIKM/WWW/ICME