100求条(spj弄的)
查看原帖
100求条(spj弄的)
1048914
cgy20140502楼主2025/1/13 17:07

组合技能还TLE

#include <bits/stdc++.h>
using namespace std;
int b[20001],a[20001],dp[20001],k = 1,len = 1,j,ans;
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	while (cin >> a[k]){
		k++;
	}
    k--;
	for (int i = 1;i <= k;++i){
		dp[i] = 1;
		for (int j = 1;j < i;++j)
			if (a[j] >= a[i])
				dp[i] = max(dp[i],dp[j]+1);
		ans = max(dp[i],ans);
	}
	cout << ans << endl;
	len = 1;
	b[1] = a[1];
	for (int i = 2;i <= k;++i){
		if (a[i] > b[len]) b[++len] = a[i];
		else{
			j = lower_bound(b,b+len,a[i]) - b;
			b[j] = a[i];
		}
	}
	cout << len;
    return 0;
}

给解释

@清空

2025/1/13 17:07
加载中...