2 条题解
-
1
#include<bits/stdc++.h> using namespace std; int n,a[5005],b[5005],f[5005],ans=1; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]>>b[i]; for(int i=1;i<n;i++) for(int j=i;j<=n;j++) if(a[i]>a[j]) { swap(a[i],a[j]); swap(b[i],b[j]); } for(int i=1;i<=n;i++) { f[i]=1; for(int j=1;j<i;j++) { if(b[j]<b[i]) f[i]=max(f[i],f[j]+1); } ans=max(ans,f[i]); } cout<<ans; return 0; } -
1
#include<bits/stdc++.h> using namespace std; struct cs{ int x,y; }a[5100]; int n,i,j,maxn,f[10000]; bool cmp(cs a,cs b) { return a.x<b.x; } int main() { cin>>n; for(i=1;i<=n;i++) cin>>a[i].x>>a[i].y; sort(a+1,a+n+1,cmp); for(i=1;i<=n;i++) { f[i]=1; for(j=1;j<i;j++) { if(a[i].y>a[j].y)f[i]=max(f[j]+1,f[i]); } } for(i=1;i<=n;i++) maxn=max(maxn,f[i]); cout<<maxn; return 0; }
- 1
信息
- ID
- 13
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 269
- 已通过
- 103
- 上传者