最长公共子序列问题

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

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 分钟前
【前沿技术】Offline RL 全解:当强化学习失去“试错”的权利
人工智能·算法·机器学习
qq_12498707533 分钟前
重庆三峡学院图书资料管理系统设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·spring·毕业设计
大学生资源网7 分钟前
java毕业设计之“知语”花卉销售网站的设计与实现源码(源代码+文档)
java·mysql·毕业设计·源码·springboot
小鸡脚来咯12 分钟前
Redis三大问题:穿透、击穿、雪崩(实战解析)
java·spring·mybatis
桦说编程15 分钟前
并发编程高级技巧:运行时检测死锁,告别死锁焦虑
java·后端·性能优化
jiayong2322 分钟前
Spring AI Alibaba 深度解析(三):实战示例与最佳实践
java·人工智能·spring
刘某的Cloud25 分钟前
列表、元组、字典、集合-组合数据类型
linux·开发语言·python
梁同学与Android29 分钟前
Android ---【经验篇】ArrayList vs CopyOnWriteArrayList 核心区别,怎么选择?
android·java·开发语言
XFF不秃头35 分钟前
力扣刷题笔记-全排列
c++·笔记·算法·leetcode