【BZOJ4698】[SDOI2008]Sandy的卡片

  • 差分一下然后选一个串,用这个串的所有前缀和其他串kmp,求出最长的公共部分即可
  • 代码:
     #include <bits/stdc++.h>
    #define f(c,a,b) for (int c=a; c<=b; c++)
    #define nmax 1010 using namespace std;
    int n;
    int a[nmax][nmax];
    int b[nmax], nex[nmax], l[nmax]; void buildnext(int lb){
    nex[] = -;
    nex[] = ;
    f(i,,lb){
    int j = nex[i-];
    for(;b[j+]!=b[i]&&j>=; j=nex[j]);
    nex[i] = j+;
    }
    } int kmp(int lb, int id){
    int ans=;
    int j=;
    f(i,,l[id]){
    for(;b[j+]!=a[id][i]&&j>=; j=nex[j]);
    j++;
    ans = max(j,ans);
    }
    return ans;
    } int main(){
    int ans=;
    cin >> n;
    f(i,,n){
    scanf("%d", &l[i]);
    f(j,,l[i]) scanf("%d", &a[i][j]);
    f(j,,l[i]) a[i][j-]=a[i][j]-a[i][j-];
    l[i]--;
    }
    f(i,,l[]){
    int c=;
    f(j,i,l[]) b[++c]=a[][j];
    buildnext(c);
    int ta=nmax;
    f(j,,n) ta = min( kmp(c,j), ta );
    ans = max(ans, ta);
    }
    printf("%d\n",ans+);
    return ;
    }

    KMP刷题记录的更多相关文章

    1. AC 自动机刷题记录

      目录 简介 第一题 第二题 第三题 第四题 第五题 第六题 简介 这就是用来记录我对于<信息学奥赛一本通 · 提高篇>一书中的习题的刷题记录以及学习笔记. 一般分专题来写(全部写一起可能要 ...

    2. PE刷题记录

      PE刷题记录 PE60 / 20%dif 这道题比较坑爹. 所有可以相连的素数可以构成一张图,建出这张图,在其中找它的大小为5的团.注意上界的估算,大概在1W以内.1W内有1229个素数,处理出这些素 ...

    3. leetcode刷题记录--js

      leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

    4. Leetcode刷题记录(python3)

      Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

    5. 刷题记录:[HarekazeCTF2019]encode_and_encode

      目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

    6. 刷题记录:[De1CTF 2019]Giftbox && Comment

      目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

    7. 刷题记录:[强网杯 2019]Upload

      目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

    8. 刷题记录:[XNUCA2019Qualifier]EasyPHP

      目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...

    9. 刷题记录:[DDCTF 2019]homebrew event loop

      目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...

    随机推荐

    1. LeetCode 200. Number of Islands 岛屿数量(C++/Java)

      题目: Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is s ...

    2. tomcat的编码设置

      Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"          ...

    3. 每日一练_PAT_B1001

      鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”.鲁宾逊先生和多多都很开心,因为花生正是他们的最爱.在 ...

    4. Mac安装Mysql-python遇到的坑,被这俩报错反复摩擦:'my_config.h' file not found 和 IndexError: string index out of range

      最后Stackoverflow上面的大神解决了问题: Link brew install mysql brew unlink mysql brew install mysql-connector-c ...

    5. Linux服务器上搭建codis集群之——安装前环境准备

      codis是redis的分布式集群模式,由豌豆荚开源,本文简单记录一下它的集群搭建方法. 首先介绍一下我的实验环境.三台配置相同的虚拟机, [root@test ~]# ip a|grep -w &q ...

    6. [转]java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?

      在 Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity. 所有对象的非同步 方法都能够在任意时刻被任意线 ...

    7. vue循环语句

      循环使用 v-for 指令. v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名. v-for 可以绑定数据到数组来渲染 ...

    8. vue框架中props的typescript用法

      vue框架中props的typescript用法 在vue中使用typescript时,需要引入vue-property-decorator库来兼容格式. javascript写法 Vue.compo ...

    9. ES6 - 基础学习(1): 开发环境搭建

      现在Chrome浏览器已经很好的支持ES6了,但有些低版本的浏览器或其他浏览器还是不支持ES6的语法,因此实际项目开发或上线过程中就需要把ES6的语法转变成ES5的语法.项目开发过程中 Webpack ...

    10. Spark组件间通信

      1.Spark组件之间使用RPC机制进行通信.RPC的客户端在本地编写并调用业务接口,接口在本地通过RPC框架的动态代理机制生成一个对应的实现类,在这个实现类中完成soket通信.远程调用等功能的逻辑 ...