最长公共子序列问题

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

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];
        }
}
相关推荐
萧曵 丶5 分钟前
JDK各版本新增特性详解
java·面试
2501_946244785 分钟前
Flutter & OpenHarmony OA系统设置页面组件开发指南
开发语言·javascript·flutter
一分半心动8 分钟前
清理C盘的python脚本
开发语言·python
natide25 分钟前
表示/嵌入差异-7-间隔/边际对齐(Alignment Margin)
人工智能·深度学习·算法·机器学习·自然语言处理·知识图谱
毅炼29 分钟前
hot100打卡——day08
java·数据结构·算法·leetcode·深度优先
一只鹿鹿鹿36 分钟前
网络信息与数据安全建设方案
大数据·运维·开发语言·网络·mysql
a努力。38 分钟前
国家电网Java面试被问:慢查询的优化方案
java·开发语言·面试
l1t40 分钟前
DeepSeek总结的算法 X 与舞蹈链文章
前端·javascript·算法
gihigo199842 分钟前
水声信号处理中DEMON谱分析的原理、实现与改进
算法·信号处理
歌_顿1 小时前
微调方法学习总结(万字长文!)
算法