poj 1609
題意:抽象的說,就是給出一列數對 ,求出其最長的遞增序列的長度。
用偏序定理,再LIS(nlogn).
代碼:
#include<iostream> #include<fstream>using namespace std; int n;struct e{int s,t; }; e a[10001];int cmp(const void *a,const void *b){e *s=(e*)a;e *t=(e*)b;if(s->s!=t->s)return s->s-t->s;elsereturn s->t-t->t; }int b[10001];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;while(cin>>n){if(n==0) break;for(i=0;i<n;i++)cin>>a[i].s>>a[i].t;qsort(a,n,sizeof(e),cmp);int m=0;b[0]=a[0].t;for(i=1;i<n;i++){j=find(m,a[i].t);b[j+1]=a[i].t;if(j+1>m) m=j+1;}cout<<m+1<<endl;}cout<<'*'<<endl;}int main(){read();return 0; }
轉載于:https://www.cnblogs.com/zhaozhe/archive/2011/05/04/2036856.html
總結
- 上一篇: 查看Infinicon的HCA卡上的网络
- 下一篇: 以太网基本知识小结(二)