首页 > 其他分享 >n log n 的求最长上升子序列

n log n 的求最长上升子序列

时间:2023-10-17 21:35:14浏览次数:32  
标签:log int top else MAXN 序列 最长

\(O(n \log n)\)的求最长上升子序列

法一:二分

int LIS(){
    int b[MAXN], top = 0, a[MAXN];
    b[0] = -1;
    for(int i = 1; i <= n; i++){
        if(a[i] > b[top]){
            top++, b[top] = a[i];
        }else{
            int l = 1, r = top;
            while(l < r){             // 二分,O(log n)
                int u = (l + r) >> 1;
                if(a[i] > b[u]){
                    l = u + 1;
                }else{
                    r = u - 1;
                }
            }
            b[l] = a[i];
        }
    }
    return top;
}

法二:线段树

标签:log,int,top,else,MAXN,序列,最长
From: https://www.cnblogs.com/huangqixuan/p/17770747.html

相关文章

  • 【Azure Logic App】使用Outlook.com发送邮件遇到429报错
    问题描述在LogicApp中使用Outlook.com组件发送邮件,遇见了outlookconnection报429的错误{"error":{"code":"ErrorExceededMessageLimit","message":"Cannotsendmail.DailyMessage/Recipientlimitexceeded.Followtheinstructionsinyour......
  • Python随机波动性SV模型:贝叶斯推断马尔可夫链蒙特卡洛MCMC分析英镑/美元汇率时间序列
    全文链接:https://tecdat.cn/?p=33885原文出处:拓端数据部落公众号本文描述了帮助客户使用马尔可夫链蒙特卡洛(MCMC)方法通过贝叶斯方法估计基本的单变量随机波动模型,就像Kim等人(1998年)所做的那样。定义模型以及从条件后验中抽取样本的函数的代码也在Python脚本中提供。  ......
  • R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型|附代
    全文链接:http://tecdat.cn/?p=32496原文出处:拓端数据部落公众号人口流动与迁移,作为人类产生以来就存在的一种社会现象,伴随着人类文明的不断进步从未间断。人力资源是社会文明进步、人民富裕幸福、国家繁荣昌盛的核心推动力量。当前,我国经济正处于从以政府主导的投资驱动型的经......
  • python 封装日志logging
    #!/usr/bin/python#-*-coding:utf-8-*-importloggingimporttimeimportosclassLog(object):'''封装后的logging'''def__init__(self,logger=None,log_cate='search'):'''......
  • verilog数的舍入溢出和截位
    四舍五入(round)前面讲的都是对数据进行扩位,这一节说的是对数据截位时如何进行四舍五入以提高截位后数据的精度。假设一个9Q6格式的数据为:9’b011.101101,现在只想保留3位小数位,显然必须把最后三位小数位截掉,但是不能直接把数据截成6’b011.101,这样是不精确的,工程上一般也不允许这......
  • verilog浮点表示
    1.verilog浮点表示定点运算有两个缺点:①可处理动态范围小;②由截尾舍入产生的百分比误差随着数的绝对值的减小而增加,这个问题可利用浮点数来解决。根据IEE754-1985标准,非负数n可以用两个参数表示,即尾数M和指数E,其表示形式为:$\eta =M×2^{E}$signexponentsignifica......
  • django服务配置logging 打印接口请求sql日志
    只需要在setting文件下配置:LOGGING={'version':1,'disable_existing_loggers':False,'handlers':{'console':{'class':'logging.StreamHandler',},},......
  • R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达
    全文下载链接:http://tecdat.cn/?p=25880 最近我们被客户要求撰写关于泊松过程的研究报告,包括一些图形和统计输出。本文描述了一个模型,该模型解释了交易的聚集到达,并展示了如何将其应用于比特币交易数据。这是很有趣的,原因很多。例如,对于交易来说,能够预测在短期内是否有更多的买......
  • LeetCode 376. 摆动序列
    最长递增子序列题目链接:376.摆动序列题目描述:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为**摆动序列。**第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如,[1,7,4,9,2,5]是一个摆动序列......
  • P9744 消除序列 题解
    本题有多种解法,我这里先讲一个我的考场做法吧。切入点我们发现我们至多使用一次操作一,而剩下部分的\(0\)肯定是依靠操作二补全,操作三的作用只是用来填补操作一的空白的,所以我们发现我们对一个序列的操作一定是前一段用操作一和操作三,后一段用操作二。思路1一开始考虑暴力\(......