这道题乍看之下感觉很简单,但是想到的确实O(n^2)的算法,直接超时。
只要在暴力算法的基础上考虑到每趟遍历的共性,改进一下,就能通过了!
下面是我的100分答案:
#include<iostream>
using namespace std;
int n;
int A[500005];
int C[10005];
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>A[i];
if(i>0){
if(A[i-1]>A[i]){
for(int j=A[i];j<A[i-1];j++){
C[j]++;
}
}
}
}
for(int i=0;i<A[n-1];i++){
C[i]++;
}
int max_count=0;
for(int i=0;i<10005;i++){
max_count=max(max_count,C[i]);
}
cout<<max_count;
return 0;
}
标签:int,算法,划分,非零段,202109,csp
From: https://www.cnblogs.com/dykkk/p/17234865.html