半总分求助
查看原帖
半总分求助
1041039
ai_inan楼主2023/9/10 21:52

为什么我一个O(nlogn)O(nlogn)的算法挂成了O(n2)O(n^2)??

#include <iostream>
#define Max (int)(5*1e4)+25
using namespace std;
int a[Max];
int d[Max];
int p[Max];
int main(){
  ios::sync_with_stdio(0);
	int len=0;
	while(cin>>a[len]){
		len++;
	}
	d[len-1]=1;
	p[len-1]=1;
	int mx=0,mi=0;
	for(int i=len-2;i>=0;i--){
		int maxx=1,minn=1;
		for(int j=i+1;j<len;j++){
			if(a[i]>=a[j]&&d[j]+1>maxx){
				maxx=d[j]+1; 
			}
			if(a[i]<a[j]&&p[j]+1>minn){
				minn=p[j]+1; 
			}
		}
		d[i]=maxx;
		p[i]=minn;
		if(maxx>mx)mx=maxx;
		if(minn>mi)mi=minn;
	}
	cout<<mx<<endl;
	cout<<mi<<endl;
	return 0;
}

不是输入输出的问题,我开流加速了没用,吸氧也没用

2023/9/10 21:52
加载中...