本题重在转化。由于最长公共子序列的下标是一个最长上升子序列,所以我们可以考虑把数字映射成下标,有多个就要倒序把每个值映射成多个不同的值,因为一个数有多种下标都是可取的。
与基本问题相同,但是需要根据长度插入新的值,而且只能使用树状数组/线段树进行优化。注意考虑只记录一种是否会影响答案(根据传递性所以“否”)。
按照(位置,时间)建立坐标系。首先利用参照物转变为人向上走,人任意位置不重要,因为我们求的就是到达每个点的答案,初始位置任意说明每个点都是可达的。然后需要把可以到达当前点的位置用不等式表示出来(即向上走的步数的两倍 \(\ge\) 左右(正负)),然后作图(简单,因为经过当前点,再描出一个点就可以作图了)发现图形对称,而且同时满足就可以保证 \(y\) 小于当前点。就转化成了经典的二维偏序问题。
首先需要发现每次操作右端点都是 \(n\),这样就只需要考虑相邻玉米的大小关系。于是每次考虑最后一个玉米 \(i\) 和上一个玉米 \(a\) 是谁,就是删去了 \([a+1,i-1]\),直接比较长高后与上一个玉米。发现是个三维偏序,一维枚举,两维用二维树状数组。
标签:偏序,下标,51nod,玉米,序列,数据结构,优化,最长,DP From: https://www.cnblogs.com/wscqwq/p/18330665