最长公共子序列问题

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

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];
        }
}
相关推荐
叼烟扛炮15 分钟前
C++ 知识点17 友元
开发语言·c++·算法·友员
SamDeepThinking23 分钟前
写代码不考虑前后兼容,迟早要还的
java·后端·程序员
计算机安禾24 分钟前
【c++面向对象编程】第2篇:类与对象(一):定义第一个类——成员变量与成员函数
开发语言·c++
Dxy123931021624 分钟前
Python Pillow库:`img.format`与`img.mode`的区别详解
开发语言·python·pillow
亿牛云爬虫专家27 分钟前
深度解析:数据采集场景下的 Java 代理技术实战
java·开发语言·数据采集·动态ip·动态代理·代理配置·连接池复用
小小仙。32 分钟前
IT自学第四十二天
java·开发语言
richard_yuu33 分钟前
数据结构|二叉树高阶进阶-经典算法
数据结构·c++·算法
java1234_小锋37 分钟前
说一下Spring的事务传播行为?
java·数据库·spring
庞轩px39 分钟前
第四篇:SpringBoot自动配置——约定大于配置的底层原理
java·spring boot·后端·spring·自动配置·注解开发
不知名的忻41 分钟前
Dijkstra算法(朴素版&堆优化版)
java·数据结构·算法··dijkstra算法