華生,你又犯了一個錯誤 的题解
记住只在没有思路时使用题解,不要从它复制粘贴代码。请尊重题目和题解的作者。
在解题之前提交题解的代码会导致封禁。
在解题之前提交题解的代码会导致封禁。
作者:
對於每個 \(a_i + |k-i |\)不妨討論 \(k\) 和 \(i\) 的關係。
\(1.\) \(k>=i\) 原式 \(=a_i - i + k\)
\(2.\) \(k<i\) 原式 \(=a_i + i - k\)
對於每一個詢問k,都可以分成以上兩個情況。
可以令 \(b_i=a_i+i, c_i=a_i-i\)
對這兩個分別維護一棵線段樹,再查詢最小值即可。
但可以再做觀察,可以用 \(O(N)\) 預處理向左走或向右走的最佳解,之後詢問都可以用 \(O(1)\) 解決。
评论