Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52420 | AK2022071318 | 木板游戏 | C++ | 解答错误 | 15 | 2000 MS | 10004 KB | 566 | 2022-07-19 12:09:34 |
#include <bits/stdc++.h> using namespace std; int n,mx,dp[500005]; struct node { int l,r,len; } a[500005]; bool cmp(node a,node b) { if(a.len==b.len) return a.l<b.l; return a.len<b.len; } int main() { cin>>n; for(int i=1; i<=n; i++) { cin>>a[i].l>>a[i].r; a[i].len=a[i].r-a[i].l; } sort(a+1,a+n+1,cmp); dp[1]=1; for(int i=1; i<=n; i++) for(int j=i+1; j<=n; j++) if(a[i].l>=a[j].l&&a[i].r<=a[j].r) dp[j]=max(dp[j],dp[i]+1); for(int i=1; i<=n; i++) mx=max(mx,dp[i]); cout<<mx; }