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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tomcat配置教程idea_idea2019配置tomcat

    tomcat配置教程idea_idea2019配置tomcat1.打开idea,在项目运行列表下拉选择“editConfigurations”2.在打开的界面,点击“+”,再选择下面的TomcatServer下的local3.在打开的界面,第一行“Name”中填入tomcat的名称然后点击Configure…,在ApplicationServers界面,点击“+”,在TomcatServer配置界面选择要添加的tomcat…

    2022年10月30日
    1
  • Jlink或者stlink用于SWD接口下载程序

    Jlink或者stlink用于SWD接口下载程序最近要使用stm32f103c8t6最小系统板,直接ISP串口下载程序太麻烦,就想着使用swd接口来调试。结果:通过SWD接口下载程序成功,但调试失败,还不知原因,会的的人麻烦交流一下。SWD接口:3.3VDIO(数据)CLK(时钟)GND1.首先声明jlink和stlink都有jtag和swd调试功能。jlink接口如下:如图,我使用的就是VCC…

    2022年4月25日
    269
  • Visio2013激活_2013 visio 32位

    Visio2013激活_2013 visio 32位转载的博客,记录下来,便于后面查找。from: http://blog.csdn.net/keenweiwei/article/details/42780805/环境是win7,64bit装了visio2013,可以却不能用它来画图,在网上找了一些激活成功教程工具,大都不能解决问题。网上不靠谱的广告型文章太多了,比较头痛。所幸,终于找到正确的激活成功教程工具KMSpico_set…

    2022年10月5日
    0
  • 真正的java的四舍五入

    真正的java的四舍五入原文地址:https://blog.csdn.net/qwfylwc/article/details/53939906下面列举让你惊讶的现象,或许你还一直这么用:1、使用Math.round()doubled=1041.735;d=Math.round(d*100)/100.0;//除以100.0而不是100System.out.println(d);…

    2022年7月8日
    20
  • TCP和UDP的区别是什么_那跟哪的区别

    TCP和UDP的区别是什么_那跟哪的区别TCP是传输层协议,定义数据传输和连接方式的规范。握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。HTTP超文本传送协议(HypertextTransferProtocol)是应用层协议,定义的是传输数据的内容的规范。HTTP协议中的数据是利用TCP协议传输的,特点是客户端发送的每次请求都需要服务器回送响应,它是TCP协议族中的一种,默认使用TCP80…

    2022年9月20日
    0
  • DOCTYPE HTML PUBLIC的官方定义

    DOCTYPE HTML PUBLIC的官方定义出现的位置:html、jsp页面中的顶部,定义部分格式如下:官方是这样定义DOCTYPEHTMLPUBLIC的!DOCTYPE指定了HTML文档遵循的文档类型定义(DTD)。Microsoft®InternetExplorer6的新增内容你可使用此声明将InternetExplorer6及以后版本切换到标准兼容

    2022年7月12日
    19

发表回复

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

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