板子3

  后缀自动机

/** @xigua */
#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <cstring>
#include <queue>
#include <set>
#include <string>
#include <map>
#include <climits>
#define PI acos(-1)
using namespace std;
typedef long long ll;
typedef double db;
const int maxn = 250005 + 5;
const int mod = 1e9 + 7;
const int INF = 1e8 + 5;
const ll inf = 1e15 + 5;
const db eps = 1e-6;
char s[maxn];
int Min[maxn<<1], Max[maxn<<1];

    int ch[maxn<<1][26];
    int fa[maxn<<1];
    int len[maxn<<1];
    int cnt, last;
    void init() {
        memset(ch, 0, sizeof(ch));
        memset(fa, 0, sizeof(fa));
        last=cnt=1;
    }
    void add(int c) {
        int p = last, np = last = ++cnt;
        len[np] = len[p] + 1;
        while(!ch[p][c] && p) {
            ch[p][c] = np;
            p = fa[p];
        }
        if(p == 0) fa[np] = 1;
        else {
            int q = ch[p][c];
            if(len[p] + 1 == len[q]) {
                fa[np] = q;
            } else {
                int nq = ++cnt;
                len[nq] = len[p] + 1;
                memcpy(ch[nq], ch[q], sizeof ch[q]);
                fa[nq] = fa[q];
                fa[q] = fa[np] = nq;
                while(ch[p][c] == q && p) {
                    ch[p][c] = nq;
                    p = fa[p];
                }
            }
        }
    }

void solve() {
    scanf("%s", s);
    int lenn = strlen(s);
    init();
    for(int i = 0; i < lenn; i++) {
        add(s[i] - ‘a‘);
    }
    scanf("%s", s);
    lenn = strlen(s);
    int p = 1;
    int ans = 0;
    int c = 0;
    for(int i = 0; i < lenn; i++) {
        if(ch[p][s[i] - ‘a‘]) {
            p = ch[p][s[i] - ‘a‘];
            c++;
        }
        else {
            while(p&&!ch[p][s[i]-‘a‘])  p=fa[p];
            if (!p)  c=0, p=1;
            else  c=len[p]+1, p=ch[p][s[i]-‘a‘];
        }
        ans = max(ans, c);
    }
    printf("%d\n", ans);
}
int main() {
    int t = 1;
    //freopen("in.txt", "r", stdin);
  //  scanf("%d", &t);
    while(t--)
        solve();
    return 0;
}
时间: 2024-11-10 06:58:53

板子3的相关文章

Arduino 板子 COM 接口找不到设备

复位 Arduino 板子 1.打开官方的blink程序. 2.重新拔插usb. 3.点下载. 4.按住左上角的复位按键不放. 5.等显示开始下载瞬间松开按键.把握住那个瞬间. 6.多试验几次看能下载好不.Arduino 板子 COM 接口找不到设备,布布扣,bubuko.com

初次拿到板子的兴奋

今天,DE2-115终于拿到手了,按捺不住内心的兴奋,马上试验一下. 一个简单的流水灯程序对照书本写好之后,遇到的第一个问题是如何将程序烧进芯片.不过还好,手头资料算是比较充足的. 1.程序很简单: //======================================================= // This code is generated by Terasic System Builder //======================================

NFS 网络文件系统挂载在A8板子上

我承认自己是菜鸟,没什么网络知识就来搞挂载nfs网络文件系统,花费了5天的时间才把nfs网络文件系统成功挂载在A8板子上,实现了A8板子和虚拟机的文件共享.分享一下个人经验: 以下是基于nfs已经完成安装来说 板子接线问题:我是把板子和电脑都接到同一个路由器上的,保证在同一个网段,我的网关是192.168.0.1,故我的电脑.虚拟机.板子的网关也是它,我的电脑ip地址是192.168.0.111.虚拟机ip为192.168.0.121,板子ip为192.168.0.120,发现上面就是192.1

Altium_Designer17-PCB-如何重新定义板子外形

当我们绘制完电路图.完成PCB布局和布线后,我们会遇到下面这种情况: 发现什么了吗?那么大的黑框框,我们只用到了很少的一部分.那有啥?告诉你黑框框的大小就是你最后将要印刷的PCB板的实际大小!大家都知道,板子的面积是跟我们的$$挂钩的,这么大的板子只有一小部分有用,岂不是很浪费?那么问题来了,要怎样重新定义板子的外形呢? 试用软件版本:Altium Designer 17 步骤: 1.将模式切换至规划模式 快捷键 1 在菜单栏View>>Board Planning Mode  1 这时,我们

使用stm32F4Discovery 的stlink v2给其他板子调试

不适用stm8. 1. 拔掉 CN3 的 跳线帽 2.CN2 的 原理图 3.按照2中的原理图和板子(核心板stm32c8t6),实际上我这边连接使用的结果是: 4. 5. 6.相关资料: 链接:http://pan.baidu.com/s/1i4IhjQd 密码:ryow

使用mbed进行STM32板子的开发

keil太难用!keil太难用!keil太难用! keil点亮一个灯都超麻烦,什么鬼东西. mbed可以网络编程,打破了mac和windows的壁垒!写好,编译,然后下下来,在拖到板子里.就直接烧进去了! mbed有自己封装好的库,"mbed.h",可以使用C++来写代码,重载好爽啊!!!!! 总之,ARM的开发可以和Arduino一样简单!!!! 看一下由三个LED组成的流水灯的代码: #include "mbed.h" //声明输出口 //D8什么的选好板子后已

《FPGA全程进阶---实战演练》第二章之焊接板子及调试注意事项

1.若是读者第一次做板子,强烈建议画完PCB板后将PCB图打印出来,然后对照你买的芯片将芯片放置对 应的位置,然后查看所有的封装格式适不适合,否则等你做出板子来后再试,为时晚矣.笔者虽然知道要这么 做,但是笔者第一次发给工厂做回来的PCB发现有一个芯片封装画大了,而且那个芯片还是贴片封装的,这让 笔者心痛不已,300多大洋就这么要毁于一旦了. 2.在参考别人的电路时一定要注意,你想用的芯片型号的电路适不适合你参考的电路图,若是完全一致,那么可以直接照抄照搬,若是不一样,这时候要非常注意电路的设计

替罪羊树(重量平衡树)总结及板子

没事干写个板子来玩一玩...平衡树的板子,上一篇写的 splay 的题解,这一篇来搞点别的.其实就我自己来说,并不太喜欢 splay ,各种旋转什么的,扭扭捏捏一点都不爽,那怎么办咧,于是学了这么个东西---替罪羊树,不平衡就重构嘛,简单粗暴,写起来也方便. 替罪羊树的主要思想就是将不平衡的树压成一个序列,然后暴力重构成一颗平衡的树. 这里的平衡指的是:对于某个 0.5<=alpha<=1 满足 size( lson(x) )<=alpha*size(x) 并且 size( rson(x

AC自动机总结及板子

蒟蒻最近想学个AC自动机简直被网上的板子搞疯了,随便点开一个都是带指针的,然而平时用到指针的时候并不多,看到这些代码也完全是看不懂的状态.只好在大概理解后自己脑补(yy)了一下AC自动机的代码,居然还过了,这里对学到的东西做一点小小的总结.顺便造福一下跟我之前一样没有学过AC自动机并且不会用指针的Oier,给出一段不带指针的板子. AC自动机的模型很好理解,就是在Trie树上做类似于KMP的操作.所以说在AC自动机里也会有一个类似于 next 数组的东西------ fail 数组来作为失配指针

POJ 3278 Catch That Cow(BFS,板子题)

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 88732   Accepted: 27795 Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,00