c++11萌新发帖求助,只过了前50%
查看原帖
c++11萌新发帖求助,只过了前50%
454444
StenvenPig楼主2023/2/2 16:49

只拿了一百分,希望大佬们可以帮忙指点优化一下

#include<bits/stdc++.h>
using namespace std;
int n,a[100110],s,k,b[100110],f[100110],ans;
int main(){
	int x;
	while(cin>>x){
		n++;
		a[n]=x;
	}
	for(int i=1;i<=n;i++){
		int m=0;
		for(int j=1;j<=i-1;j++){
			if(a[j]>=a[i]){
				if(f[j]>m) m=f[j];
			}
		}
		f[i]=m+1;
	}
	for(int i=1;i<=n;i++) ans=max(ans,f[i]);
	cout<<ans<<endl;
	for(int i=1;i<=n;i++){
		int w=0;
		for(int j=1;j<=k;j++){
			if(b[j]>=a[i]){
				w=j;
				break;
				
			}
		}
		if(w>0) b[w]=a[i];
		else{
			k++;
			b[k]=a[i];
		}
	}
	cout<<k;
	return 0;
}

2023/2/2 16:49
加载中...