poj1887

来源:互联网 发布:wcf框架源码 编辑:程序博客网 时间:2024/04/30 11:18

最长下降子序列

#include<stdio.h>#include<stdlib.h>#include<string.h>#define INF  40000int c[40000],len;int find(int l,int r,int a){  int mid=(l+r)/2;  while(l<r)  {    if(c[mid]>a)  l=mid+1;    else           r=mid;    mid=(l+r)/2;  }  return r;}int main(){  int a,count=0,j,i;    while(scanf("%d",&a)!=EOF&&(a!=-1))  {    j=0;len=0;    c[0]=INF;    count++;    c[1]=a;len++;    while(scanf("%d",&a)!=EOF&&(a!=-1))    {      if(a<c[len]) j=++len;      else  j=find(1,len,a);      c[j]=a;    }    printf("Test #%d:\n",count);    printf("  maximum possible interceptions: %d\n\n",len);  }  return 0;}


0 0