0
点赞
收藏
分享

微信扫一扫

【Spring Boot 】Spring Boot 统一功能处理

小禹说财 2023-06-19 阅读 41

    

目录

题目 

题解:

知识点:

分析:


题目 



题解:

知识点:

LIS(最长上升子序列)

分析:

一个显然要操作的就是对友好城市建立pair对,并按第一个关键字排序

我们的目标是要求最多可行数,按照题中的要求课得我们选取的pair对中第二个关键字也是顺序的

由此可得答案即为第2个关键字的LIS

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#define s second
#define _for(i,a,b) for (int i=(a);i<=(b);i++)
using namespace std;
typedef pair<int,int> PII;
const int N=5e3+5;
PII a[N];
int dp[N];
inline void c_plus(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
}
int main(){
    c_plus();
    int n,ans=-0x3f3f3f3f;
    cin>>n;
    _for(i,1,n){
        int x,y;
        cin>>x>>y;
        a[i]={x,y};
    }
    sort(a+1,a+n+1);
    _for(i,1,n){
        dp[i]=1;
        _for(j,1,i){
            if (a[j].s<a[i].s){
                dp[i]=max(dp[i],dp[j]+1);//lis
            }
        }
        ans=max(ans,dp[i]);
    }
    cout<<ans<<endl;
    return 0;
}
举报

相关推荐

0 条评论