HDU1950
来源:互联网 发布:远程wifi控制软件 编辑:程序博客网 时间:2024/06/05 10:58
//虽然是一道LIS问题,但是还是第一次用O(n*lgn)这种算法,赶角波错哈哈哈哈。。。。至少今天有所收获
#include<cstdio>
#include<cstring>
#define max 40000+5
int a[max],dp[max];
int main(){
int t;
scanf("%d",&t);
while(t--){
int n,len=0;
scanf("%d",&n);
//memset(dp,0,sizeof(dp));
dp[0]=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++){
if(a[i]>dp[len]){
dp[++len]=a[i];
}
else{ //如不使用二分查找,时间复杂度仍为O(n*n)
int minn=1,maxn=len+1;
while(minn<maxn){
int mid=minn+(maxn-minn)/2;
if(dp[mid]>a[i]){
maxn=mid;
}
else{
minn=mid+1;
}
}
if(dp[minn]<a[i]){
dp[maxn]=a[i];
}
else{
dp[minn]=a[i];
}
}
}
printf("%d\n",len);
}
}
- HDU1950
- hdu1950
- HDU1950:Bridging signals(LIS)
- HDU1950:Bridging signals(LIS)
- HDU1950:Bridging signals
- hdu1950二分法的LISS
- hdu1950 最大上升子序列
- HDU1950 Bridging signals 裸LIS
- HDU1950 Bridging signals LIS优化
- Bridging signals ZOJ 3627 POJ1631 HDU1950
- HDU1950-Bridging signals-最长上升子序列
- hdu1950 Bridging signals (nlogn的lis)
- HDU1950[Bridging signals] LIS模型 (nlogn)
- HDU1950,单调递增最长子序列(n*lgn)算法
- hdu1950 Bridging signals(最长递增子序列二分)
- HDU1950-Bridging signals(最长上升子序列)
- 【HDU1950】Bridging signals (最长上升子序列DP(nlogn))
- ZOJ3627 POJ1631 HDU1950 Bridging Signals,O(N*logN)版最长上升子序列问题
- 统计整数二进制表示中1的个数
- Cocos2d-x 中游戏暂停与恢复
- Loading Large Bitmaps Efficiently [有效率的加载大尺寸的位图]
- 转:通过ReverseMe学习PE文件结构-输出表
- JTable常见用法
- HDU1950
- Lock&Condition实现线程同步通信
- 16-判断输入的是否是数字(字符串处理)
- 使用Ant编译Hadoop eclipse插件
- Qt webKit--实现本地QObject(c++)和JavaScript交互
- Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets
- ICMP协议Ping命令的应用
- drawable(hdpi,ldpi,mdpi) 的区别
- Application.DoEvents()