不相交可以转化最长上升子序列问题
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = 5e3 + 10;
PII a[N];
int f[N];
int main() {
int n;
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i].first >> a[i].second;
sort(a, a + n);
int ans = 0;
for(int i = 0; i < n; i++) {
f[i] = 1;
for(int j = 0; j < i; j++) if(a[j].second < a[i].second) f[i] = max(f[i], f[j] + 1);
ans = max(ans, f[i]);
}
cout << ans;
return 0;
}