LIS+二分法
2024-09-17 19:37:20
http://poj.org/problem?id=3903
数列里是存从小到大排的数,二分也是为了这个服务的,不断更新。而len才是所求长度
#include <iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#define mem(a) memset(a,0,sizeof(a))
using namespace std; int main()
{
int t,a[],f[];
while(cin>>t)
{
for(int i=;i<t;i++)
{
scanf("%d",&a[i]);
}
f[]=-;
int len=,l,r,mid;
for(int i=;i<t;i++)
{
if(a[i]>f[len]) f[++len]=a[i];
else
{
l=,r=len;
while(l<=r)
{
mid=((l+r)>>);
if(f[mid]>=a[i]) r=mid-;
else l=mid+;
}
f[l]=a[i]; //因为执行l=mid+1的条件就是a[i]大于mid了所以到最后正好能被替换掉的下标就是l或者r+1
}
}
cout<<len<<endl; }
return ;
}
最新文章
- 微信平台ASPX高级定制开发(一):如何使用C#建立响应微信接入和自动回复的代码
- UI控件闪烁及刷新
- Textview在Listview中实现跑马灯效果
- UESTC 912 树上的距离 --LCA+RMQ+树状数组
- apahce
- 《c程序设计语言》读书笔记--反转字符串
- php 中cookie和session的用法比较
- Java内存溢出的详细解决方案
- Android使用Dom解析xml
- HDU 1232:流问题(并检查集合)
- CentOS6.5 安装mysql5.6.30
- 初级:使用MD5对字符串进行加密操作
- .gitignore文件的配置和生效
- 使用turtle画故宫(伍奇,侯俊豪小组)
- String 和 StringBuffer、StringBuilder
- linux中通过lsof恢复删除的文件,前题是fd被占用。
- Tsung&#160;CentOS&#160;操作系统下搭建tsung性能测试环境_Part&#160;2
- 大数据入门到精通2--spark rdd 获得数据的三种方法
- windows恶意软件删除工具(MRT.exe)检查计算机是否感染病毒使用图解
- UI5-文档-4.22-Expression Binding