题目大意
给出一种类似波浪形的图,图上第 i i i 个点的高度标为 a i a_i ai。给定 k k k,试求 a k a_k ak。
大体思路
一道巧妙的数学题。
容易观察到,第 x x x 段波浪的长度为 4 x + 1 4x+1 4x+1。于是,我们发现,前 u u u 段波浪的总长度为 2 × u 2 − u 2×u^2-u 2×u2−u。接着,我们观察这个式子,发现它具有单调性。于是,我们就可以想到二分。
我们要二分 m i d mid mid,使得 2 × m i d 2 − m i d ≤ k < 2 × ( m i d + 1 ) 2 − ( m i d + 1 ) 2 \times{mid}^2-mid \leq k < 2 \times{(mid+1)}^2-(mid+1) 2×mid2−mid≤k<2×(mid+1)2−(mid+1)。这是一个非常简单的二分。
我们可以拿 a n s ans ans 记下 m i d mid mid 的值。最后计算答案的时候,我们先将 k k k 减去它所在波浪前面所有波浪的总长度,即 2 × a n s 2 − a n s + 1 2 \times{ans}^2-ans+1 2×ans2−ans+1,然后考虑 k k k 在上升、下降、上升这三段中的哪一段。最后的答案只需观察即可得到。
温馨提示:请注意题目的数据范围。