4 条题解
-
1
动态规划求解
#include<bits/stdc++.h> using namespace std; int const N=1e5+10; struct node { int st,ed; }q[N]; int cmp(node x,node y) { if(x.st==y.st) return x.ed<y.ed; return x.st<y.st; } int dp[N]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>q[i].st>>q[i].ed; } sort(q+1,q+1+n,cmp); for(int i=1;i<=n;i++) { dp[i]=1; for(int j=i-1;j>=1;j--) { if(q[j].ed<=q[i].st) dp[i]=max(dp[i],dp[j]+1); } } int ans=0; for(int i=1;i<=n;i++) { ans=max(ans,dp[i]); } cout<<ans<<endl; return 0; }
信息
- ID
- 955
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 208
- 已通过
- 25
- 上传者