最长公共子序列问题

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

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];
        }
}
相关推荐
喵同志不止步于码农13 小时前
Java Caffeine 快速入门
java·开发语言·后端·并发·缓存一致性
Java成神之路-13 小时前
Java 并发灵魂拷问:notify/signal 唤醒顺序是规范还是实现?
java
Java牛马13 小时前
Caffeine 缓存及其应用相关总结
java·redis·缓存·caffeine·数据一致性·本地缓存
2kπ13 小时前
QT开发笔记
开发语言·笔记·qt
青 春 记 忆13 小时前
零基础入门Python15|关联、聚合、索引与事务:订单数据库
开发语言·python·后端开发
江屿风13 小时前
【STM32基础篇】【嵌入式生态问题及历史追溯】流食般投喂
大数据·开发语言·人工智能·笔记·stm32·嵌入式硬件
一只叫煤球的猫14 小时前
Spring AI 2.0 源码解析(三):ChatClient 的 Fluent API 如何构建请求?
java·后端·面试
charlie11451419114 小时前
深探std::vector:三指针、扩容与迭代器失效
开发语言·c++·开源项目
软件开发JR14 小时前
基于Web的足球青训俱乐部管理后台系统的设计与开发
java·前端·spring boot·毕业设计
看我眼色行事^ \/ ^14 小时前
2024.05.11 360春招WEB前端编程题
算法