蒟蒻Zigzag正在准备联赛......

这个算是这几天做的唯一一个值得写一写的题吧。首先LIS的N^2暴力dp应该都会写,就是F[i]=Max{F[j]}+1

那么加权的就吧后面的1换成数的权值就行了,如果优先长度的话加一些判断就行了。

那么O(nlogn)怎么写?

LIS的Nlogn应该都会写,就是记一个数组D[i]表示长度为i的LIS的末尾的最小值,可证D是单增的,所以每次找Max的时候只需要二分查找D数组就行了

或者你可以个给每个F插到树状数组里(数为横坐标,F为纵坐标),每次查找比这个数小的里面的最大F

又或者可以用单调栈什么的?我记得好像可以,不过记不清了。

那带权的怎么写?

还想记录D数组吗?如果权值和很大的话开不起那么大的数组。树状数组也是一样,没那么大的空间。

其实这东西就是一个类似三维偏序的东西,如果把原始顺序看成x,数的大小看成y,权值和值看成z,于是每次就是找x和y都小于等于当前状态的一个最大的F值,你可以用平衡树来维护,但显然有点大材小用......

于是,想到了CDQ分治这个东西。

x维分治,y维快排,然后用一个单调栈来维护F。想想为什么不能直接单调栈?因为你只能一次把x维排序,那么我们把(y,F)看成平面上的点的话,那么每次加进来我们不能保证y是递增的,就无法维护。加上分治的好处就是我们可以保证加进来的点是单增的。

栗子请看RQNOJ的一个题

关于加权的LIS问题的更多相关文章

  1. Lis日常维护

    1.[问题]护士站打印LIs条码,出来是PDF格式的 [解决]在文件夹Client\NeusoftLis\Xml\Print.xml中把BarcodePrint Name的值改成安装的斑马打印机名(不 ...

  2. uva10635 LIS

    Prince and PrincessInput: Standard Input Output: Standard Output Time Limit: 3 Seconds In an n x n c ...

  3. T1加权像(T1 weighted image,T1WI)

    T1加权成像(T1-weighted imaging,T1WI)是指这种成像方法重点突出组织纵向弛豫差别,而尽量减少组织其他特性如横向弛豫等对图像的影响. 弛豫:物理用语,从某一个状态恢复到平衡态的过 ...

  4. Codeforces 486E LIS of Sequence 题解

    题目大意: 一个序列,问其中每一个元素是否为所有最长上升子序列中的元素或是几个但不是所有最长上升子序列中的元素或一个最长上升子序列都不是. 思路: 求以每一个元素为开头和结尾的最长上升子序列长度,若两 ...

  5. 出操队形(LIS)

    题目来源:微策略2013年校园招聘面试一面试题 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往楼下跑了,然后身高矮的排在队伍的前面,身高较 ...

  6. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  7. [tem]Longest Increasing Subsequence(LIS)

    Longest Increasing Subsequence(LIS) 一个美丽的名字 非常经典的线性结构dp [朴素]:O(n^2) d(i)=max{0,d(j) :j<i&& ...

  8. 从LIS问题浅谈动态规划

    今天以LIS问题切入动态规划,现在做一些简单的总结. LIS问题: http://www.cnblogs.com/Booble/archive/2010/11/27/1889482.html

  9. [noip科普]关于LIS和一类可以用树状数组优化的DP

    预备知识 DP(Dynamic Programming):一种以无后效性的状态转移为基础的算法,我们可以将其不严谨地先理解为递推.例如斐波那契数列的递推求法可以不严谨地认为是DP.当然DP的状态也可以 ...

随机推荐

  1. Maya 脚本控制物体自转

    在Maya中,我们可以用脚本来控制物体的自转方向,速度等等,步骤如下: 选择需要操作的物体object,打开通道盒Channel Box,点击编辑Edit,打开表达式Expressions面板 选择需 ...

  2. Lrucache缓存技术

    在Android中,有一个叫做LruCache类专门用来做图片缓存处理的. 它有一个特点,当缓存的图片达到了预先设定的值的时候,那么近期使用次数最少的图片就会被回收掉. 步骤: (1)要先设置缓存图片 ...

  3. [转载]How To Add Swap on Ubuntu 12.04

    How To Add Swap on Ubuntu 12.04 Aug 17, 2012  Linux Basics Ubuntu   About Linux Swapping Linux RAM i ...

  4. 第一次scrum meeting 报告

    1.第一次scrum meeting确定了我们任务和相应的分配方案,具体分配情况如下: 这是我们团队其中一名成员的任务内容及相应预估时长,其他成员具体分配情况已在TFS上作了相应更新. 第一次scru ...

  5. java web用于保持状态的4种方法

    方法一:网址重写 通过在url地址后面添加若干的token作为查询字符串来实现.token的值一般为 键=值 url?key1=value1&key2=value2&...&k ...

  6. 3_STL算法

    1.常用遍历算法1.1 for_each for_each(v1.begin(),v1.end(),show); void show(int &n) //回调函数的入口地址 { cout &l ...

  7. WordPress模板常用函数

    基本条件判断Tag is_home() : 是否为主页 is_single() : 是否为内容页(Post) is_page() : 是否为内容页(Page) is_category() : 是否为C ...

  8. HelloWorld的Sprint计划会议

    1.Sprint需求 编号 用户故事 故事价值 (点数) 1 作为一名小学生,我想要在玩电脑时玩一种 有趣的小游戏   2 作为一名不怎么爱玩大型游戏的白领(也喜欢玩迷宫游戏), 我想要玩一种可以在家 ...

  9. LoadRunner11.00安装问题及解决方法

    1.安装提示:“安装程序已确定正在等待重新启动....” 解决方法:打开安装包,找到:\Additional Components\IDE Add-Ins\MS Visual Studio .NET\ ...

  10. LeetCode Generalized Abbreviation

    原题链接在这里:https://leetcode.com/problems/generalized-abbreviation/ 题目: Write a function to generate the ...