• 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;
    }
    
  • 相关阅读:
    Datediff的使用(统计本日,昨日,本周,本月)
    数据库之查询语句
    数据库之表关系
    数据库中的数据类型
    数据库概念和基本操作
    IO模型
    并发编程之协程
    GIL与多线程(线程池与进程池,同步异步阻塞非阻塞)
    并发编程之多线程
    并发编程之多进程
  • 原文地址:https://www.cnblogs.com/lqhsr/p/10990681.html
Copyright © 2020-2023  润新知