P2463 [SDOI2008]Sandy的卡片

直接二分长度暴力匹配.......

跑的还挺快

(正解是后缀数组的样子)

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
void read(int &x){
char c=getchar();x=;
while(c<''||c>'')c=getchar();
while(''<=c&&c<='')x=x*+(c^),c=getchar();
}
#define N 1002
int n,a[N][N],b[N];
bool ask2(int st,int x){
bool p;
for(int i=;i<=n;++i){
p=;
for(int j=;!p&&j<=b[i]-x+;++j){
int v=a[][st]-a[i][j];p=;
for(int k=;p&&k<x;++k)
if(a[][st+k]!=a[i][j+k]+v)p=;
}if(!p) return ;
}return ;
}
bool ask1(int x){
if(x==) return ;
for(int i=;i<=b[]-x+;++i)
if(ask2(i,x)) return ;
return ;
}
int main(){
read(n); int k=;
for(int i=;i<=n;++i){
read(b[i]);
if(b[k]>b[i]) k=i;
for(int j=;j<=b[i];++j) read(a[i][j]);
}if(k!=) swap(a[],a[k]),swap(b[],b[k]);
int l=,r=b[],mid;
while(l+<r){
mid=l+((r-l)>>);
if(ask1(mid)) l=mid;
else r=mid-;
}printf("%d",ask1(r)?r:l);
return ;
}

丧心病狂压行版

 #include<bits/stdc++.h>
using namespace std;
#define re return
int n,a[][],b[],k;
bool ask2(int s,int x){
for(int i=,j,k;i<=n;++i){bool p=;
for(j=;!p&&j<=b[i]-x+;++j){p=;
for(k=;p&&k<x;++k)
if(a[][s+k]!=a[i][j+k]+a[][s]-a[i][j])p=;
}if(!p) re ;}re ;}
bool ask1(int x){for(int i=;i<=b[]-x+;++i)if(ask2(i,x))re ;re ;}
int main(){cin>>n;k=;
for(int i=,j;i<=n;++i){cin>>b[i];if(b[k]>b[i])k=i;
for(j=;j<=b[i];++j)cin>>a[i][j];
}if(k!=)swap(a[],a[k]),swap(b[],b[k]);
int l=,r=b[],mid;
while(l+<r)mid=l+r>>,ask1(mid)?l=mid:r=mid-;
cout<<(ask1(r)?r:l);}

bzoj4698 / P2463 [SDOI2008]Sandy的卡片的更多相关文章

  1. 洛谷 P2463 [SDOI2008]Sandy的卡片 解题报告

    P2463 [SDOI2008]Sandy的卡片 题意 给\(n(\le 1000)\)串,定义两个串相等为"长度相同,且一个串每个数加某个数与另一个串完全相同",求所有串的最长公 ...

  2. 【BZOJ4698】Sdoi2008 Sandy的卡片 后缀数组+RMQ

    [BZOJ4698]Sdoi2008 Sandy的卡片 Description Sandy和Sue的热衷于收集干脆面中的卡片.然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡 ...

  3. 【BZOJ4698】[SDOI2008]Sandy的卡片

    [BZOJ4698][SDOI2008]Sandy的卡片 题面 flag倒了. bzoj 洛谷 题解 首先题目的区间加很丑对吧, 将每个串差分一下,就可以转化为 求: 给定\(N\)个串,求他们的最长 ...

  4. P2463 [SDOI2008]Sandy的卡片[差分+串拼接后缀数组]

    P2463 [SDOI2008]Sandy的卡片 套路都差不多,都是差分后二分答案找lcp.只是这题要把多个串拼接起来成为一个大串,中间用某些值域中没有的数字相隔(最好间隔符都不一样想想为什么),排序 ...

  5. 【bzoj4698】[Sdoi2008] Sandy的卡片 后缀数组

    题目描述 Sandy和Sue的热衷于收集干脆面中的卡片.然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型.每一张卡片都由一些数字进行标记,第i张卡片的序列 ...

  6. 洛谷P2463 [SDOI2008]Sandy的卡片(后缀数组SA + 差分 + 二分答案)

    题目链接:https://www.luogu.org/problem/P2463 [题意] 求出N个串中都出现的相同子串的最长长度,相同子串的定义如题:所有元素加上一个数变成另一个,则这两个串相同,可 ...

  7. Luogu P2463 [SDOI2008]Sandy的卡片

    题目链接 \(Click\) \(Here\) 真的好麻烦啊..事实证明,理解是理解,一定要认认真真把板子打牢,不然调锅的时候真的会很痛苦..(最好是八分钟能无脑把\(SA\)码对的程度\(QAQ\) ...

  8. P2463 [SDOI2008]Sandy的卡片

    写一种\(O(nm)\)的做法,也就是\(O(\sum 串长)\)的. 先通过差分转化,把每个数变成这个数与上一个数的差,第一个数去掉,答案就是最长公共子串+1 按照套路把所有串拼起来,中间加一个分隔 ...

  9. 洛咕 P2463 [SDOI2008]Sandy的卡片

    哈希水过. 首先这是一段delta相同的序列,按照套路差分一下,b[i]=a[i]-a[i-1],然后就是这些序列的最长公共子段 由于数据范围很小,就可以二分,枚举第一个序列的子段然后每个子序列暴力c ...

随机推荐

  1. word2vec 评测 sg=0 sg=1 size=100 window=3

    1.评价sg=0与sg=1的区别    结果原文:sg_difference.txt sg=0     sg=1 绑定                         1 关联            ...

  2. NO Route to Host 连接mysql数据库

    显然是请求被服务器的防火墙给拦截了 1,vi /etc/sysconfig/iptables 2,在倒数第三行以前添加 -A INPUT -p tcp -m state --state NEW -m  ...

  3. [LeetCode] 129. Sum Root to Leaf Numbers_Medium tag: DFS

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  4. [LeetCode] 162. Find Peak Element_Medium tag: Binary Search

    A peak element is an element that is greater than its neighbors. Given an input array nums, where nu ...

  5. maven pom文件报错:Multiple annotations found at this line 解决方案(转)

    研究maven多模块项目时,因为家里和公司不能同时开发,所以把家里搭建好的项目复制到公司继续研究, 当时家里的电脑搭建好项目之后是没问题的,但是复制到公司的eclipse上之后就看到pom文件出现下面 ...

  6. CSU 1849 Comparing answers(数学矩阵)

    Comparing answers 离散数学真的要好好学啊:一个邻接矩阵(这个矩阵一定是n×n的方阵,n是图的节点个数),表示的是从i到j有几条通路的时候,矩阵的1次方就代表从从i到j长度为1的路径通 ...

  7. MYSQLi数据访问分页查询

    <?php //分页工具 直接加载使用 /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录 ...

  8. itextsharp display:none无效的bug

    在使用itextsharp实现 html 2 pdf时,发现display:none无效.如 <div style="display: none">应该隐藏</d ...

  9. 《大话设计模式》c++实现 模版方法模式

    模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 角色: (1)AbstractClass:是抽象类,其实也 ...

  10. STL之Set和multiset容器

    1.Set和multiset容器 1)set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列.元素插入过程是按排序规则插入,所以不能指定插入位置. 2)set采用红黑树变体的数据 ...