36pts(TLE了)
查看原帖
36pts(TLE了)
658786
STUDENT00楼主2022/9/8 21:51

好歹用滚动数组过了MLE这一关,然而TLE了……

#include<bits/stdc++.h>
using namespace std;
int n,a[100010],dp[100010],ans; 
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=n;i++){
		for(int j=i;j>=0;j--){
			dp[j]+=(a[i]==i-j);
			if(j&&dp[j-1]>dp[j]) dp[j]=dp[j-1];
			ans=max(ans,dp[j]);
		}
	}
	printf("%d",ans);
	return 0;
}

本萌新虚心请教,请问有大佬有优化方法吗?

2022/9/8 21:51
加载中...