Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
傳送門
文章目錄
- 題意:
- 思路:
題意:
思路:
首先有一個顯然的性質就是每組操作最多不會超過兩次。
很容易想到一個很暴力的思路,就是枚舉x∈[1,2?k]x \in [1,2*k]x∈[1,2?k],讓后判斷一下每組需要操作幾次取最小值。這樣復雜度O(nk)O(nk)O(nk),顯然不能接受。
考慮反方向,通過枚舉nnn,來判斷對每個iii來說,如果最終變成xxx要操作多少次,分以下三種情況:
(1)x=a[i]+a[n?i+1](1) x=a[i]+a[n-i+1](1)x=a[i]+a[n?i+1],顯然操作000次即可。
(2)x∈[min(a[i],a[n?i+1])+1,max(a[i],a[i+1])+k](2) x \in [min(a[i],a[n-i+1])+1,max(a[i],a[i+1])+k](2)x∈[min(a[i],a[n?i+1])+1,max(a[i],a[i+1])+k],操作一次即可。
(3)(3)(3)其余情況操作222次。
以上區間加操作顯然可以用差分來實現。
復雜度O(n)O(n)O(n)。
總結
以上是生活随笔為你收集整理的Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020 ICPC 上海 Sum of
- 下一篇: 香油的功效与作用