"Portal bzoj3173" Solution 感觉自己需要智力康复qwq 首先题目给的这个序列肯定是一个$1 n$的排列,并且插入的顺序是从小到大 仔细思考一下会发现如果知道了最终的序列,问题就比较好解决了,这里提供一种用线段树的做法: 如果知道了最终的序列,记数字$i$在该序列中的位置为$ ...
分类:
其他好文 时间:
2018-06-16 16:17:40
阅读次数:
152
最长上升子序列 bzoj-3173 题目大意:有1-n,n个数,第i次操作是将i加入到原有序列中制定的位置,后查询当前序列中最长上升子序列长度。 注释:1<=n<=10,000,开始序列为空。 想法:显然,我们发现,我每次加入的数一定是当前序列中最大的,所以,刚刚加入的i,要么是当前序列中LIS的结 ...
分类:
其他好文 时间:
2018-03-03 14:13:06
阅读次数:
154
Description 给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少? Input 第一行一个整数N,表示我们要将1到N插入序列中,接下是N个数字,第k个数字Xk,表示我们将k插入到位置Xk( ...
分类:
其他好文 时间:
2017-11-29 10:21:34
阅读次数:
178
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3173 题意:向序列中动态插入$1~n$排列元素,求出插入每个元素后最长上升子序列长度。 如Claris所言,面对这种数据结构,必有高论。如果只想着数据结构,我们可以通过平衡树动态维护序列,同时使 ...
分类:
编程语言 时间:
2017-11-03 23:59:42
阅读次数:
444
1~n<=1e5依次插入序列中某一个位置,求每次插入后的最长上升子序列。 因为新插入的数对前面插入的答案没影响,所以只要能想方设法构造出最终序列即可。 方法一:平衡树!。。。。 方法二:在树状数组上倍增求第K大 然而LIS写残了。。记得是lowerbound不是upper。。 然后最后输出记得和前面 ...
分类:
其他好文 时间:
2017-10-20 10:12:38
阅读次数:
158
[BZOJ3173][Tjoi2013]最长上升子序列 试题描述 给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 输入 第一行一个整数N,表示我们要将1到N插入序列中,接下是N个数字,第k个数 ...
分类:
其他好文 时间:
2016-12-21 00:06:29
阅读次数:
201
Description 给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少? Input 第一行一个整数N,表示我们要将1到N插入序列中,接下是N个数字,第k个数字Xk,表示我们将k插入到位置Xk( ...
分类:
其他好文 时间:
2016-08-24 12:59:20
阅读次数:
129
Description 给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想 ...
分类:
其他好文 时间:
2016-08-03 13:24:25
阅读次数:
191
题意:动态插入数,求每次插完后的最长上升自序列长度。(N<=100000)
动态插入部分 块状链表
块状链表:
split:分裂 O(sqrt(n))
merge:合并 O(sqrt(n))
insert:插入 具体做法是找到对应的块O(sqrt(n)),在该块内找到对应的点O(sqrt(n))split,merge(first,now),merge(now,second)
mainta...
分类:
其他好文 时间:
2016-05-12 16:00:37
阅读次数:
97
题目链接乍看无思路。注意插入的是按顺序的1~n的n个数。假设我们已经插入完毕了;1.对于数k,序列中比k大的数一定比k后插入!2.对于数k,序列中在k左边比k大的数一定不影响以k结尾的最长上升子序列的长度!那么:直接求以一个数结尾的最长上升子序列长度就好啦!!!(二分优化LIS 复杂度:O(log2...
分类:
其他好文 时间:
2016-01-23 21:12:53
阅读次数:
166