您的位置:首页 > 其它

最长上升子序列(LIS)算法

2011-07-18 23:10 204 查看
sicily 1060. Bridging Signals

最长不上升子序列

#include<iostream>        //最长不上升子序列
using namespace std;
int main()
{
int cases=1,seq[10000],p;
while(scanf("%d",&p),p!=-1)
{
int rear=-1;
seq[++rear]=p;
while(scanf("%d",&p),p!=-1)
{
if(p<=seq[rear])
seq[++rear]=p;
else
{
int s=0,t=rear,mid;
while(s<t)
{
mid=(s+t)/2;
if(seq[mid]>=p)
s=mid+1;
else
t=mid;
}
seq[s]=p;
}
}
printf("Test #%d:\n  maximum possible interceptions: %d\n\n",cases++,rear+1);
}
return 0;
}


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