半AC半TLE 100分求调awa
查看原帖
半AC半TLE 100分求调awa
735869
P_ZXY_楼主2024/8/14 11:56
#include<iostream>
using namespace std;

int a[114514],b[114514],x,p,k,cnt;

void fun(int n){
	for(int i = 1;i <= cnt/2;++i) swap(b[i],b[cnt-i+1]);
	cout << endl;
	int ma = 0,dp[114514] = {0};
	for(int i = 1;i <= n;++i){
		dp[i] = 1;
		for(int j = 1;j < i;++j)
			if(b[j] <= b[i]) dp[i] = max(dp[j]+1,dp[i]);
			ma = max(dp[i],ma);
	}
	cout << ma << endl;
}

int main(){
	while(cin >> x){
		p = -1;b[++cnt] = x;
		for(int j = 1;j <= k;j++){
			if(a[j] >= x){
				p = j;
				break;
			}
		}
		if(p == -1){
			k++;
			a[k] = x;
		}else a[p] = x;
	}
	fun(cnt);
	cout << k;
	return 0;
}
2024/8/14 11:56
加载中...