最长公共子序列问题

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

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];
    }

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

为什么在求最长公共子序列时,fmid大于等于或大于ai都可以,而在最长单调上升子序列中只能大于等于,不能大于

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];
        }
}
相关推荐
言乐66 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
NiceCloud喜云7 小时前
Anthropic 一周三连发:Cowork 多端、Fable 5 按需付费、J-space 论文的技术解读
java·服务器·网络·人工智能·ai
凉云生烟7 小时前
机器学习 02- KNN算法
人工智能·算法·机器学习
wabs6667 小时前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
cui_ruicheng7 小时前
Python从入门到实战(六):非序列容器
开发语言·python
SamDeepThinking7 小时前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试
可编程芯片开发7 小时前
空气流量和空气压力参数解耦系统simulink建模与仿真
算法
西西学代码7 小时前
Flutter---底部导航栏(2)
开发语言·javascript·flutter
legendary_1637 小时前
SINK芯片:Type-C统一供电时代的小家电核心方案
c语言·开发语言·人工智能·智能手机
momo7 小时前
JAVA基础知识
java·开发语言