您的位置:首页 > 其它

poj 3636

2011-04-16 19:48 197 查看
偏序定理。

注意

1. 偏序定理。

2. 最长递减子序列的nlogn算法。

3.qosrt是不稳定排序。

代码:

#include<iostream>
#include<fstream>

using namespace std;

struct e{
int w,h;
};

e a[20001];
int n;
int b[20001];

int cmp(const void *a,const void *b){
if(((e *)b)->w-((e*)a)->w!=0)
return ((e *)a)->w-((e*)b)->w;
else
return ((e*)b)->h-((e*)a)->h;

}

int find(int s,int value){
int i=0,k;
while(i<=s)
{
k=(i+s)>>1;
if(b[k]<value) s=k-1;
else i=k+1;
}
return s;
}

void read(){
//	ifstream cin("in.txt");
int i,j,k,m;
cin>>k;
while(k--)
{
cin>>n;
for(i=0;i<n;i++)
cin>>a[i].w>>a[i].h;
qsort(a,n,sizeof(a[0]),cmp);

m=0;
b[0]=a[0].h;
for(i=1;i<n;i++)
{
j=find(m,a[i].h);
b[j+1]=a[i].h;
if(j+1>m) m=j+1;
}
cout<<m+1<<endl;
}

}

int main(){
read();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: