最长公共子序列问题

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

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];
        }
}
相关推荐
叶小鸡8 小时前
Java 篇-项目实战-天机学堂(从0到1)-day9
java·开发语言
小短腿的代码世界8 小时前
Qt券商接口封装深度解析:统一API设计与多源适配
开发语言·qt·单元测试
wearegogog1238 小时前
基于Q-learning的栅格地图路径规划MATLAB仿真程序
开发语言·算法·matlab
@#¥&~是乱码鱼啦8 小时前
Spring分层架构:Controller、Service、Mapper数据链路,IOC的真实工作意义
java·spring·架构
旖-旎8 小时前
深搜练习(组合总和)(7)
c++·算法·深度优先·力扣
小O的算法实验室8 小时前
2026年ASOC,基于人工势场的差分进化算法改进框架,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
xieliyu.8 小时前
Java手搓数据结构:从零模拟实现无头双向非循环链表
java·数据结构·链表
csbysj20208 小时前
Java 条件语句
开发语言
爱学习的张大8 小时前
具身智能论文精读(五):OpenVLA
人工智能·算法
薪火铺子9 小时前
SpringMVC请求处理流程源码解析(第3篇):视图渲染与异常处理
java·后端·spring