表面上看这是一道LCS问题

LCS问题O(n2)的复杂度已经很优秀了

而这道题需要O(nlogn)以下的复杂度才能AC

所以我们要找经典问题的特殊性

特殊就在这两个串中,每个数字都是恰好出现5次

不难想到先预处理每个数在B串依次出现的位置

先扫一遍A串,对于每一个数a[i],设f[j]=LCS(i,j)

显然这个数在B串出现的位置才会更新答案

对于每个出现的位置x1~x5,显然f[x]=max(f[w])+1 (1<=w<=x-1);

为了避免重复更新,我们要从后往前更新f[x]

再考虑怎么快速找到最大值,显然这里要找的是前缀中的最大值

不难想到,我们可以通过树状数组维护

 var b,f,a,c:array[..] of longint;
    w:array[..,..] of longint;
    j,n,i,x,ans:longint; function max(a,b:longint):longint;
  begin
    if a>b then exit(a) else exit(b);
  end; function lowbit(x:longint):longint;
  begin
    exit(x and (-x));
  end; function get(x:longint):longint;
  begin
    get:=;
    while x> do
    begin
      get:=max(get,c[x]);
      x:=x-lowbit(x);
    end;
  end; procedure update(x,p:longint);
  begin
    while x<=*n do
    begin
      c[x]:=max(c[x],p);
      x:=x+lowbit(x);
    end;
  end; begin
  readln(n);
  for i:= to *n do
    read(a[i]);
  for i:= to *n do
  begin
    read(x);
    inc(b[x]);
    w[x,b[x]]:=i;
  end;
  for i:= to *n do
  begin
    for j:= downto do
    begin
      x:=w[a[i],j];
      f[x]:=get(x-)+;
      update(x,f[x]);
    end;
  end;
  for i:= to *n do
    ans:=max(f[i],ans);
  writeln(ans);
end.

bzoj1264的更多相关文章

  1. BZOJ1264 [AHOI2006]基因匹配Match 动态规划 树状数组

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1264 题意概括 给出两个长度为5*n的序列,每个序列中,有1~n各5个. 求其最长公共子序列长度. ...

  2. BZOJ1264 [AHOI2006]基因匹配Match 【LCS转LIS】

    题目链接 BZOJ1264 题解 平凡的\(LCS\)是\(O(n^2)\)的 显然我们要根据题目的性质用一些不平凡的\(LCS\)求法 这就很巧妙了,, 我们考虑\(A\)序列的每个位置可能匹配\( ...

  3. 【BZOJ1264】[AHOI2006]基因匹配Match DP+树状数组

    [BZOJ1264][AHOI2006]基因匹配Match Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而 ...

  4. BZOJ1264——[AHOI2006]基因匹配Match

    1.题意,求最长公共子序列,每个数字在序列中都出现5次 2.分析:最长公共子序列的标准解法是dp,$O(n^2)$过不了的,然后我们发现判断哪两个位置优化的地方用$5n$就可以搞定了,那么我们用BIT ...

  5. [BZOJ1264][AHOI2006]Match(DP+树状数组)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1264 分析: 考虑做一般的LCS的时候,更新结果的条件是a[i]==b[j]时候 于是 ...

  6. BZOJ1264: [AHOI2006]基因匹配Match

    1264: [AHOI2006]基因匹配Match Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 541  Solved: 347[Submit][S ...

  7. 【bzoj1264】[AHOI2006]基因匹配Match 树状数组

    题解: 一道比较简单的题目 容易发现状态数只有5*n个 而转移需要满足i1<i2;j1<j2 那么很明显是二维平面数点 暴力一点就是二维树状数组+map 5nlog^3 比较卡常 但是注意 ...

  8. bzoj1264 [AHOI2006]基因匹配

    Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球上只有4种),而更奇怪的是,组成DNA序列的每一种碱 ...

  9. bzoj1264 [AHOI2006]基因匹配Match 树状数组+lcs

    1264: [AHOI2006]基因匹配Match Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1255  Solved: 835[Submit][ ...

随机推荐

  1. 响应式框架中,table表头自动换行的解决办法

    最近在用bootstrap开发网站,在处理一张table的时候发现,通过PC端查看样式正常,在手机上查看时,因为屏幕小,表格被压缩的厉害,表头和数据变形如下图 后来网上找了一下,发现一个好用的CSS属 ...

  2. primefaces 带参数的组件

    分析了一下primefaces extension showcase的源码,总结一下组件传参的方式. 下面定义了一个组件,名为fourTabsDecoratorCustom.xhtml 1: < ...

  3. 小技巧之指定refer

    在当前页面A的控制台输入window.location.href='要跳去的页面B',B页面的refer即为A页面.

  4. html页面布局 第8节

    页面布局: <html> <head> <title>页面布局</title> <style type="text/css"& ...

  5. [Java][20160707]Java语言介绍

    Java最早的名称叫"oak"后来改名叫"Java". Java最早是属于"Sun"公司的, 后来被"Oracle"公司 ...

  6. HDU 4294 A Famous Equation(DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4249 题目大意:给一个a+b=c的表达式,但是a.b.c中部分位的数字丢失,并用?代替,问有多少种方案 ...

  7. Codevs 4600 [NOI2015]程序自动分析

    4600 [NOI2015]程序自动分析 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 传送门 题目描述 Description 在实现程序自动分析的过程中,常常需 ...

  8. Asp.net Mvc HTTP 404。

    asp.net mvc  设置完起始页的时候会出现以下Error 此错误的原因是在MVC中设置完起始页 会改变   的 值 从而使服务器找不到 相对应的路径   解决方案: 通过 路由设置,解决web ...

  9. 【原创】Linux 增加系统调用

    Linux 增加系统调用大致步骤: 1.下载好内核文件,在内核源文件中添加好自己的调用函数. 2.编译内核 3.验证. 一.在内核源文件中增加自己的函数   首先将内核文件移至/usr/src/下并解 ...

  10. php练习4——排序,查找

    排序(从小到大) 查找 注:二分法查找的数组默认为已经排序的数组