讨论 / 加个二分,不然坑
lijie201602 2017-09-10 00:37:40
点我顶贴 收藏 删除
#include<cstdio>

typedef long long LL;

LL a[10010],ans=0,n;

int main()

{

scanf("%lld",&n);

for(int i=1;i<=n;i++)

{

LL x; scanf("%lld",&x);

if(x==0) continue;

LL l=1,r=ans;

while(l<=r)

{

LL mid=(l+r)/2;

if(a[mid]==x) { l=mid; break; }

else if(a[mid]>x) l=mid+1;

else r=mid-1;

}

if(l<=ans) a[l]=x;

else a[++ans]=x;

}

printf("%d",ans);

return 0;

}

#1 zhengzha@2017-09-10 22:13:38
回复 删除
你代码数据没开对啊
#2 lijie201602@2017-09-11 22:40:17
回复 删除
回复 #1 zhengzha:水
#3 lijie201602@2017-09-11 22:40:33
回复 删除
最长不上升序列的nlogn算法
查看更多回复
提交回复