提交时间:2024-03-30 14:31:58
运行 ID: 140343
#include<bits/stdc++.h> using namespace std; int n,mi; struct node{ int a,b,l; bool operator <(const node &y)const { return a<y.a; } }x[10001]; int main() { //freopen("Beautiful.in","r",stdin); //freopen("Beautiful.out","w",stdout); cin>>n; for(int i=1;i<=n;i++) { cin>>x[i].a>>x[i].b; x[i].l=1; } sort(x+1,x+n+1); for(int i=n-1;i>=1;i--) { mi=0; for(int j=i+1;j<=n;j++) { if(x[i].b<x[j].b&&x[j].l>mi&&x[i].a<x[j].a)//一开始我没写x[i].a<x[j].a,因此错了两个点,所以说题目一定要看清楚! { mi=x[j].l; } } x[i].l=mi+1; } mi=x[1].l; for(int i=1;i<=n;i++) if(x[i].l>mi)mi=x[i].l; cout<<mi; return 0; }//hxjlb