50pts求调
查看原帖
50pts求调
1236967
GSQ0829楼主2025/7/19 09:51

谁能帮我看看为什么超时了:

#include <bits/stdc++.h>
#define int long long
using namespace std;

const int MAXN = 200001;
int dp[MAXN], n, ans;

struct node {
	int x, y;
} a[MAXN];

bool cmp(node a, node b) {
	return a.x < b.x;
}

signed main() {
	scanf("%lld", &n);
	for (int i = 1; i <= n; i++) scanf("%lld%lld", &a[i].x, &a[i].y);
	sort(a + 1, a + n + 1, cmp);
	for (int i = 1; i <= n; i++) {
		dp[i] = 1;
		for (int j = 1; j < i; j++) {
			if (a[j].y < a[i].y) dp[i] = max(dp[i], dp[j] + 1);
		}
		ans = max(ans, dp[i]);
	}
	printf("%lld\n", ans);
	return 0;
}

帮我者必壶关

2025/7/19 09:51
加载中...