代码:
https://github.com/HarryGuo2012/ACMCode/tree/worldLine/Codeforces/%23333(Div%202)
Two Bases
题意:
给你两个不同进制的数,让你比较大小。
题解:
直接转换到十进制比较就好。
Approximating a Constant Range
题意:
给你一个序列,这个序列中相邻的元素之间的差值不超过1,求一个最长的子串,使得这个子串中最大值和最小值的差不超过1。
题解:
直接用两个指针$i,j,i\le j$表示这个串的头尾,向后扫如果$j$的位置大于$[i,j]$中的最小值加一,就让$i$跳着往前走就好,如果小于区间最大值减一,也让$i$跳着往前跳。整个过程维护两个RMQ表就好,不过这道题也可以dp。
The Two Routes
题意:
有个完全图,边权都是1,部分边是公路,部分是铁路,现在火车和汽车同时从1号节点出发前往n号节点,中途不能同时在一个节点相遇,可以在n号节点等另外一个交通工具,现在问你最短时间,使得两个交通工具都在n号节点。
题解:
这里有个巧妙地地方,由于边权都是1,并且是完全图,由三角形不等式,两个交通工具绝对无法相遇。所以直接spfa两边就好。
Lipshitz Sequence
题意:
给你个序列,每次询问时$[L,R]$内所有的连续序列的利普希茨常数的和。
题解:
此题做法非常的巧妙,首先我们来想想这样一个问题,对于一个连续函数$f(x)$而言,在区间$[L,R]$中是否一定存在一个斜率的绝对值$|k|$,使得$|k|\ge L,R的连线$?仔细想想后发现这是一定存在的,所以在离散域中,利普希茨常数一定存在与相邻的元素。所以直接维护一个RMQ,然后再二分就好。详见代码。