CodeForces 10D. LCIS 最长公共上升子序列模板题 + 打印路径

CodeForces 10D. LCIS 最长公共上升子序列模板题 + 打印路径

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

推荐一篇炒鸡赞的blog。

以下代码中有打印路径。

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <ctime>
#include <iomanip>

#pragma comment(linker, "/STACK:1024000000");
#define EPS (1e-6)
#define LL long long
#define ULL unsigned long long
#define _LL __int64
#define INF 0x3f3f3f3f
#define Mod 1000000007

using namespace std;

int A[510],B[510];

int py[510][510],px[510][510],dp[510][510] = {0};

void Output(int x,int y)
{
    if(x == -1 && y == -1)
        return ;

    Output(px[x][y],py[x][y]);

    if(A[x] == B[y])
        printf("%d ",A[x]);
}

int main()
{
    int n,m,i,j,mlen,x,y;

    scanf("%d",&n);
    for(i = 1;i <= n; ++i)
        scanf("%d",&A[i]);

    scanf("%d",&m);
    for(i = 1;i <= m; ++i)
        scanf("%d",&B[i]);

    int Max = 0,ax,ay;

    for(i = 1;i <= n; ++i)
    {
        mlen = 0,x = -1,y = -1;
        for(j = 1;j <= m; ++j)
        {
            dp[i][j] = dp[i-1][j];
            px[i][j] = i-1,py[i][j] = j;
            if(B[j] < A[i] && dp[i-1][j] > mlen)
                mlen = dp[i-1][j],x = i-1,y = j;

            if(B[j] == A[i])
                dp[i][j] = mlen + 1,px[i][j] = x,py[i][j] = y;
            if(dp[i][j] > Max)
                Max = dp[i][j],ax = i,ay = j;
        }
    }

    if(Max)
        printf("%d\n",Max),Output(ax,ay);
    else
        printf("0\n");
    return 0;
}

















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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115817.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用python画出爱心_Python编出爱心

    用python画出爱心_Python编出爱心Python中可以使用turtle库来画图,通过控制画笔运动来实现在画布上画图案。使用Python画爱心代码如下:#!/usr/bin/envpython#-*-coding:utf-8-*-importturtleimporttime#画心形圆弧defhart_arc():foriinrange(200):turtle.right(1)turtle.forward(2)de…

    2025年9月26日
    1
  • java des ecb_【转】 java DES ECB模式对称加密解密

    java des ecb_【转】 java DES ECB模式对称加密解密最近需要又要使用DES加密数据,要求DES加密出来的数据为对称加密,经过研究,发现了一些问题:1.DES对称ECB模式加密的数据,长度必须为8的倍数2.加密的数据,加密后先转码(因为加密后的数据我是转码了),否则解密是乱码格式一下是源代码:这个是加密的工具类:packagecom.palmfu.sql;importjava.security.Key;importjavax.crypto.Ciphe…

    2025年6月24日
    6
  • Http响应头里Cache-Control:no-cache、max-age=””和no-store

    Http响应头里Cache-Control:no-cache、max-age=””和no-store响应头:Cache-Control:no-cache,强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验。这对于需要确认认证应用很有用(可以和public结合使用),或者严格要求使用最新数据 的应用(不惜牺牲使用缓存的所有好处)通俗解释:浏览器通知服务器,本地没有缓存数据//======================================================…

    2022年6月13日
    32
  • 内网渗透基础_内网穿透技术详解

    内网渗透基础_内网穿透技术详解整理下内网渗透的思路

    2022年8月31日
    6
  • PyCharm设置护眼背景色

    PyCharm设置护眼背景色.方法一:      File->Seting->Editor-Colors->General->Text->Defaulttext->BackGround设置为E1F4E4

    2022年8月25日
    12
  • 基于HTML5实现的在线3D虚拟试衣系统(试衣间)解决方案

    基于HTML5实现的在线3D虚拟试衣系统(试衣间)解决方案3D虚拟试衣系统的使用场景主要是在线电商或数字营销,为品牌服装、服饰、饰品添加高端3D虚拟购物动效,提升用户感官体验和交互体验。踏得网基于网页/HTML5独家研发了一套在线3D虚拟试衣间系统。纯网页版,跨平台支持,无需用户安装插件。

    2022年6月5日
    136

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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