最长公共子序列问题

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

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];
        }
}
相关推荐
前端技术1 分钟前
华为余承东:鸿蒙终端设备数突破5500万
java·前端·javascript·人工智能·python·华为·harmonyos
notfound40431 分钟前
解决SpringCloudGateway用户请求超时导致日志未记录情况
java·spring boot·spring·gateway·springcloud
Adellle4 分钟前
Java 异步回调
java·开发语言·多线程
海寻山5 分钟前
Java常用API详解(二):集合类API(ArrayList/HashMap/HashSet)实战,一篇吃透
开发语言·python
XMYX-05 分钟前
19 - Go 并发限制:限流与控制并发数
开发语言·golang
qeen876 分钟前
【算法笔记】差分与经典例题解析
c语言·c++·笔记·学习·算法·差分
SamDeepThinking8 分钟前
如何理解 Spring 当中的 Bean?
java·后端·面试
kronos.荒11 分钟前
动态规划——整数拆分(python)
python·算法·动态规划
卵男(章鱼)12 分钟前
汽车网络通讯分析与仿真工具的系统工程:Vector CANoe与ZLG ZCANPRO深度剖析
开发语言·汽车·php
敖正炀14 分钟前
阻塞队列-0-3-最佳实践
java