dp萌新TLE 50求调
查看原帖
dp萌新TLE 50求调
943498
wangshenluogu楼主2024/3/25 20:39

链接:

https://www.luogu.com.cn/record/152447438

代码:

#include<iostream>
using namespace std;
int n,a[200001],b[200001],dp[200001],ans=0;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
        scanf("%d",&b[i]);
	}
	for(int i=1;i<=n;i++){
        for(int j=1;j<=n-i;j++){
            if(a[j]>a[j+1]){
                swap(a[j],a[j+1]);
                swap(b[j],b[j+1]);
            }
        }
    }
    for(int i=1;i<=n;i++){
		dp[i]=1;
		for(int j=1;j<i;j++){
			if(b[i]>b[j]&&dp[j]+1>dp[i]){
				dp[i]=dp[j]+1;
			}
		}
		if(dp[i]>ans){
			ans=dp[i];
		}
	}
	cout<<ans<<endl;
	return 0;
}

求具体解决办法,萌新不会啥lower_bound,还有题解区第三篇题解“lower_bound和upper_bound的用法”的连接好像挂了。

2024/3/25 20:39
加载中...