描述 你正在协助某人开发某种新的 Linux 下的中文字体. 现在需要给上图里的黄点做「位置锚固」,然而有些黄点的位置可以由「插值(IUP)」确定,这样就可以减少锚固的数量. 例如,在上图中,#46 #49 #52 #53 的位置可以由 #42 和 #57 插值得到, 我就不需要去锚固它们,只需要固定 #42 和 #57 就可以了. 可以给这个字减少至少 12 字节 …… 抽象一下问题,现在给出输入数组 a, 定义 ax 可以被 al 和 ar 插值得到为: 存在 l < x < r 使得 a
这题可以把问题转化为,对于一个位置,限制的位置必然是,递增时候,小于他本身,或者递减时候,大于他本身的位置,然后在这个区间中,寻找最大(小)值的位置,这样利用线段树维护即可,对于一个限制位置,可以先把数字离散化掉,然后用权值做节点很容易就处理出来了,然后第二个问题就是普通的rmq问题 代码: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N