40分求助
查看原帖
40分求助
757864
ruye楼主2023/2/23 17:53
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;

int n,max1=0,a[maxn],f[maxn]={0,1};
 
int search(int x){
	while(1){
		if(f[x-1]==0){
			x--;
		}
		else  return x-1;
	}	
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++)	cin>>a[i]; 
	for(int i=2;i<=n;i++){
		if(a[i]==1) continue;
		else f[a[i]]=f[search(a[i])]+1;
	}
	for(int i=1;i<=maxn;i++){
		if(max1<f[i]) max1=f[i];
	}
	cout<<max1;
	return 0;
} 

过了两个点 但不知道错在哪了

2023/2/23 17:53
加载中...