二分做法WA求调
查看原帖
二分做法WA求调
1404765
umirin楼主2025/8/2 08:27

目前已知这组数据过不了,但我不知道怎么解决

9
2 7 1 5 6 4 3 8 9

错误代码

#include<bits/stdc++.h>
using namespace std;
int n,len,a[100010],low[100010],l,r,mid;
int main()
{
	low[0]=-100000000;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(low[len]>=a[i]){
			l=1;
			r=len;
			while(l<=r){
				mid=int((l+r)/2);
				if(low[mid]<=a[i]) l=mid+1;
				if(low[mid]>a[i]) r=mid-1;
			}
			if(low[mid]<=a[i]) mid++;
			if(low[mid]>a[i]){
				low[mid]=a[i];
				len=mid;
				/*cout<<len<<endl;
				for(int i=1;i<=len;i++){
					cout<<low[i];
				} 
				cout<<endl;*/
			} 
		}
		if(low[len]<a[i]){
			len++;
			low[len]=a[i];
			/*cout<<len<<endl;
			for(int i=1;i<=len;i++){
				cout<<low[i];
			} 
			cout<<endl;*/
		}	
	}
	/*for(int i=1;i<=len;i++){
		cout<<low[i]<<' ';
	}*/
	cout<<len;
	return 0;
}
2025/8/2 08:27
加载中...