zoukankan      html  css  js  c++  java
  • LIS&&LCS&&LCIS

    LIS

    #include<bits/stdc++.h>
    using namespace std;
    int n,a[100005],b[100005],ji;
    int main(){
        cin>>n;
        for(int i=1;i<=n;i++){cin>>a[i];}
        b[++ji]=a[1];
        for(int i=2;i<=n;i++){
            if(a[i]>b[ji]){
                b[++ji]=a[i];
                continue;
            }
            int mid,l=1,r=ji;
            while(l<r){
                mid=(l+r)>>1;
                if(b[mid]>=a[i]) r=mid;//因为要将a[i]插入到b中,且插入位置保证b[mid]>=a[i],所以>a[i]也可能是答案 
                else l=mid+1;
            }
            b[l]=a[i];
        }
        cout<<ji;
    }
    

    LCS

    #include<bits/stdc++.h>
    using namespace std;
    int n,a[100005],b[100005],f[100005],c[100005],ji;
    int main(){
        cin>>n;
        for(int i=1;i<=n;i++){cin>>a[i];c[a[i]]=i;}
        for(int i=1;i<=n;i++)cin>>b[i];
        f[++ji]=c[b[1]];
        for(int i=2;i<=n;i++){
            if(c[b[i]]>f[ji]){
                f[++ji]=c[b[i]];
                continue;
            }
            int mid,l=1,r=ji;
            while(l<r){
                mid=(l+r)>>1;
                if(f[mid]>=c[b[i]])r=mid;
                else l=mid+1; 
            }
            f[l]=c[b[i]];
        }
        cout<<ji;
    }
    

    LCIS

    #include<bits/stdc++.h>
    using namespace std;
    int n,a[3005],b[3005],f[3005][3005],maxn;
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i];
    	for(int i=1;i<=n;i++)cin>>b[i];
    	for(int i=1;i<=n;i++){
    		int val=0;
    //		if(b[])
    		for(int j=1;j<=n;j++){
    			if(a[i]==b[j]){
    				f[i][j]=val+1;
    				maxn=maxn>f[i][j]?maxn:f[i][j];
    			}
    			else f[i][j]=f[i-1][j];
    			if(b[j]<a[i])val=max(val,f[i-1][j]);//???????
    			maxn=maxn>f[i][j]?maxn:f[i][j];
    		}
    	}
    	cout<<maxn;
    }
    
  • 相关阅读:
    §6 矢量在轴上的投影(射影)
    3§5 点与直线的位置关系
    第十八章 机械振动基础
    第五章摩擦平衡问题
    矩阵论基础 3.4线性方程组的解
    第三章 平面与空间直线
    第九章点的复合运动
    §3 两平面的相关位置
    3§7 直线与平面的位置关系
    第十七章 碰撞
  • 原文地址:https://www.cnblogs.com/lqhsr/p/10990681.html
Copyright © 2011-2022 走看看