最长公共子序列问题

构造最长公共子序列为什么要这样构造序列

cpp 复制代码
 for(int i=1;i<=n;++i)
    {
        int k;
        cin>>k;
        b[k]=i;
    }
    for(int i=1;i<=n;++i)
    {
   	    int k;
    	cin>>k;
    	a[i]=b[k];
    }

并且为什么要求上升序列,是有什么数学知识包含在其中吗?

为什么在求最长公共子序列时,f[mid]大于等于或大于a[i]都可以,而在最长单调上升子序列中只能大于等于,不能大于

cpp 复制代码
   for(int i=1;i<=n;++i)
    {
	    if(f[ans]<a[i]) f[++ans]=a[i];
	    else
	    {
 	        int l=1,r=ans;
 	        while(l<r)
  	        { 
        	    int mid=(l+r)>>1;
        	    if(f[mid]>a[i]) r=mid;
                else l=mid+1;   
            }
            f[l]=a[i];
        }
}
相关推荐
摇曳的精灵2 分钟前
直接关掉jar包,会影响没有执行完的任务吗
java·jar
yoyo_zzm4 分钟前
PHP vs Java:后端语言终极选择指南
java·spring boot·后端·架构·php
澈2074 分钟前
哈希表:O(1)查找的终极指南
算法·哈希算法·散列表
Evand J5 分钟前
【MATLAB例程】5个UAV 分布式围捕编队运动仿真 —— 基于PID控制
开发语言·分布式·matlab
m0_502724955 分钟前
golang 、java、c++、javascript 语言switch case异同
java·javascript·c++·golang
幻奏岚音18 分钟前
AI模型用户画像分析_new
人工智能·算法·计算机视觉·数据挖掘
Season45022 分钟前
C++11并发支持库(condition_variable | future全家桶)
java·jvm·c++
阿Y加油吧29 分钟前
二刷 LeetCode:爬楼梯与杨辉三角,Java 实现复盘
java·算法·leetcode
落羽的落羽32 分钟前
【项目】C++从零实现JsonRpc框架——项目引入
linux·服务器·开发语言·c++·人工智能·算法·机器学习
墨月白33 分钟前
【Python】程序设计基本方法
开发语言·python