后%50数据TLE求调
查看原帖
后%50数据TLE求调
1430250
_hud楼主2025/2/6 15:49

问题2也是用Dilworth定理写的,不知道为什么tle,求调

#include <bits/stdc++.h>
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
#define MAXN 100010
int n, a[MAXN], f[MAXN][2], ans, res;
signed main() {
	cin.tie(0), cout.tie(0) -> sync_with_stdio(0);
	while(cin >> a[++n]); --n;
	for(int i = 1; i <= n; i++) {
		f[i][0] = f[i][1] = 1;
		for(int j = 1; j < i; j++) 
			if(a[i] <= a[j])
				f[i][0] = max(f[j][0]+1, f[i][0]);
			else f[i][1] = max(f[j][1]+1, f[i][1]);
		ans = max(ans, f[i][0]), res = max(f[i][1], res);
	}
	cout << ans << '\n' << res;
	return 0;
}
2025/2/6 15:49
加载中...