CSU-1120 病毒(最长递增公共子序列)[通俗易懂]

CSU-1120 病毒(最长递增公共子序列)

大家好,又见面了,我是全栈君。

你有一个日志文件,里面记录着各种系统事件的详细信息。自然的,事件的时间戳按照严格递增顺序排列(不会有两个事件在完全相同的时刻发生)。
遗憾的是,你的系统被病毒感染了,日志文件中混入了病毒生成的随机伪事件(但真实事件的相对顺序保持不变)。备份的日志文件也被感染了,但由于病毒采用的随机感染方法,主日志文件和备份日志文件在感染后可能会变得不一样。
给出被感染的主日志和备份日志,求真实事件序列的最长可能长度。
 

Input

输入第一行为数据组数T (T<=100)。每组数据包含两行,分别描述感染后的主日志和备份日志。
每个日志文件的格式相同,均为一个整数n (1<=n<=1000)(代表感染后的事件总数)和n 个不超过100,000的正整数(表示感染后各事件的时间戳)。
注意,感染后可能会出现时间戳完全相同的事件。

Output

对于每组数据,输出真实事件序列的最长可能长度。

Sample Input

1
9 1 4 2 6 3 8 5 9 1
6 2 7 6 3 5 1

Sample Output

3
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>

using namespace std;
const int N = 1000 + 5;
int dp[N], a[N], b[N];

void Work(int n, int m){
    int M;
    memset(dp, 0, sizeof(dp));
    for(int i = 1; i <= n; i++){
        M = 0;
        for(int j = 1; j <= m; j++){
            if(a[i] > b[j] && M < dp[j])
                M = dp[j];
            if(a[i] == b[j])
                dp[j] = M + 1;
        }
    }
    printf("%d\n", *max_element(dp + 1, dp + m + 1));
}
int main(){
    int T, n, m;
    scanf("%d", &T);
    while(T --){
        scanf("%d", &n);
        for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
        scanf("%d", &m);
        for(int i = 1; i <= m; i++) scanf("%d", &b[i]);
        Work(n, m);
    }
}

 

转载于:https://www.cnblogs.com/Pretty9/p/7406937.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108216.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm环境配置教程_python环境变量的配置

    pycharm环境配置教程_python环境变量的配置pycharm环境下配置opencv

  • 软考之计算机病毒「建议收藏」

    软考之计算机病毒「建议收藏」在复习软考的时候,发现计算机病毒方面的知识在软件设计师教程这本书上没怎么介绍,但是这部分的内容还常考。所以把计算机病毒方面的知识总结了一下,下面我就来一一介绍一下这些病毒。 1、引导型病毒:引导型病毒隐藏在磁盘内,在系统文件启动前已经驻留在内存中。主要感染磁盘的引导区,影响软盘或硬盘的引导扇区 2、文件型病毒:通常感染执行文件(包括exe和com文件等)但也有些会感染其他可执行

  • 汇编语言全梳理(精简版)

    汇编语言全梳理(精简版)

    2020年11月20日
  • goland 激活码2021【永久激活】

    (goland 激活码2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~V…

  • uart verilog代码_接口实现类

    uart verilog代码_接口实现类废话不多说,先上源代码链接和testbench的链接,推荐使用UE查看源代码,UE中的VHDL语法、Verilog语法和SystemVerilog语法高亮文件的下载链接在这里。上篇的最后给出了本篇所附代码的uart通信模型的工作过程。本篇的主要内容在源代码里,因此文章内容略显简单。一、寄存器描述本篇所写的uart接口的内部寄存器的定义如下表:表1内部寄存器定义 寄存器名 地址 属性 说明 复位寄存器 0x00 w/r 低3位才有意义,第0位用于对发送电

  • Jackson 动态过滤属性,编程式过滤对象中的属性

    Jackson 动态过滤属性,编程式过滤对象中的属性

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号