Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52249 | 氢氦锂铍硼 | 木板游戏 | C++ | 运行超时 | 0 | 2000 MS | 10004 KB | 898 | 2022-07-19 11:51:05 |
#include <bits/stdc++.h> using namespace std; #define ll long long int n,ans; int numl[500005]; struct node { ll l,r; } jb[500005]; int dfs(int h,int sum) { for(int i=h; i<=n; i++) { int sum1=1; for(int j=i+1; j<=n; j++) if(jb[numl[j]].r<=jb[numl[i]].r) { sum1++; sum=max(sum,dfs(j,sum1)); } } return sum; } int main() { // srand(time(0)); scanf("%d",&n); // if(n>400) // { // int x=rand(); // cout<<x%(n-1)+1<<endl; // return 0; // } for(int i=1; i<=n; i++) scanf("%lld%lld",&jb[i].l,&jb[i].r); for(int i=1; i<=n; i++) numl[i]=i; for(int i=1; i<=n; i++) for(int j=i+1; j<=n; j++) { if(jb[i].r<jb[j].r) swap(numl[i],numl[j]); if(jb[i].l>jb[j].l) swap(numl[i],numl[j]); } ans=dfs(1,1); cout<<ans<<endl; return 0; }