Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52247 | AK2022071346 | 木板游戏 | C++ | 运行超时 | 20 | 2000 MS | 10636 KB | 598 | 2022-07-19 11:50:55 |
#include<cstdio> #include<iostream> using namespace std; int n,l[2501],r[2501],lb[2501][2501],s[2501],rd[2501],ans,v[2501]; void dfs(int x,int y) { v[y]=1; ans=ans>x?ans:x; for(int i=1;i<=s[y];i++) { if(!v[lb[y][i]])dfs(x+1,lb[y][i]); } v[y]=0; return; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d%d",&l[i],&r[i]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(i==j)continue; if(l[i]<=l[j]&&r[j]<=r[i])lb[i][++s[i]]=j,rd[j]=1; } for(int i=1;i<=n;i++) { if(rd[i])continue; dfs(1,i); } printf("%d",ans); return 0; }