zoukankan      html  css  js  c++  java
  • hdu_5904_LCIS(DP)

    题目链接:hdu_5904_LCIS

    题意:

    给你两串数,让你找这两串数的最长公共子序列,并且这个最长公共子序列是连续的数值

    题解:

    我们首先先分别处理出a,b的每个数的最长连续的长度

    然后随便找一串数来更新一下答案就行了

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<cstring>
     4 #define F(i,a,b) for(int i=a;i<=b;i++)
     5 using namespace std;
     6 
     7 inline void up(int &a,int b){if(a<b)a=b;}
     8 
     9 const int N=1e5+7;
    10 int a[N],b[N],T,n,m,f[N],aa[N],bb[N];
    11 
    12 int LCIS()
    13 {
    14     int ans=0;
    15     memset(aa,0,sizeof(aa));
    16     memset(bb,0,sizeof(bb));
    17     F(i,1,n)up(aa[a[i]],aa[a[i]-1]+1);
    18     F(i,1,m)up(bb[b[i]],bb[b[i]-1]+1);
    19     if(n>m)F(i,1,m)up(ans,min(aa[b[i]],bb[b[i]]));
    20     else F(i,1,n)up(ans,min(aa[a[i]],bb[a[i]]));
    21     return ans;
    22 }
    23 
    24 int main()
    25 {
    26     scanf("%d",&T);
    27     while(T--)
    28     {
    29         scanf("%d%d",&n,&m);
    30         F(i,1,n)scanf("%d",a+i);
    31         F(i,1,m)scanf("%d",b+i);
    32         printf("%d
    ",LCIS());
    33     }
    34     return 0;
    35 }
    View Code
  • 相关阅读:
    navicat的快捷键
    NoSQL Redis的学习笔记
    awk的使用
    把自己的电脑做服务器发布tomcat的项目外网访问
    linux系统备份
    系统自动化配置和管理工具:SaltStack
    RSync实现文件备份同步
    传送文件
    面试题
    闭包closure
  • 原文地址:https://www.cnblogs.com/bin-gege/p/5904338.html
Copyright © 2011-2022 走看看