您的位置:首页 > 其它

南阳oj 题目16 矩形嵌套

2018-02-16 21:01 381 查看

AC情况:


代码:
#include <iostream>
#include <cstdio>

using namespace std;

int rect[1005][2];
int db[1005];
int n;

int sc(int x){
int num=0;
for(int i=0;i<n;i++){
if(rect[i][1]<rect[x][1]&&rect[i][0]<rect[x][0]){
if(db[i]){
if(db[i]>num)num=db[i];
}else{
if(sc(i)>num)num=db[i];
}
}
}
db[x]=num+1;
return db[x];
}

int main(){
int N;
scanf("%d",&N);
while(N--){
int res=0;

scanf("%d",&n);
for(int i=0;i<n;i++){
db[i]=0;
int a,b;
scanf("%d%d",&a,&b);
if(a>b){
rect[i][0]=a;
rect[i][1]=b;
}else{
rect[i][0]=b;
rect[i][1]=a;
}

}
for(int i=0;i<n;i++){
if(!db[i])sc(i);
if(db[i]>res)res=db[i];
}

printf("%d\n",res);
}

return 0;
}
这题做起来比想象中容易点,,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: