Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52532 | AK2022071340 | 木板游戏 | C++ | 解答错误 | 5 | 2000 MS | 2588 KB | 645 | 2022-07-19 12:39:51 |
#include <bits/stdc++.h> using namespace std; const int N=1e5+5; const int INF=1e9+10; int n; long long F[N]; struct Ban { long long l,r; } B[N]; bool cmp(const Ban x,const Ban y) { return x.l<y.l; } int main() { long long maxx=0; scanf("%d",&n); for(int i=1; i<=n; i++) { scanf("%lld%lld",&B[i].l,&B[i].r); maxx=max(B[i].r,maxx); } sort(B+1,B+n+1,cmp); F[n]=1; long long ans=1; for(int i=n-1; i>=1; i--) { F[i]=-INF; for(int j=i+1; j<=n; j++) if(F[j]+1>F[i]&&B[j].r<=B[i].r) F[i]=F[j]+1; ans=max(ans,F[i]); } printf("%lld\n",ans); return 0; }