¿ 如何搞笑高效做題 ?
只需要口胡CF題就行啦!(
從今天起口胡 CF 按照洛谷透過人數排序的題單
從 CF2000 Part 1 開始
CF24E XOR on Segment
- 給定 \(n\) 個數的序列 \(a\)。\(m\) 次操作,操作有兩種:
- 求 \(\displaystyle\sum_{i=l}^r a_i\)。
- 把 \(a_l\sim a_r\) 異或上 \(x\)。
- \(1\le n\le 10^5\),\(1\le m\le 5\times 10^4\),\(0\le a_i\le 10^6\),\(1\le x\le 10^6\)。
思路:開 \(\log(A)\) 個線段樹記錄二進位制下每一位是 \(0\) 還是 \(1\)。 \(A\) 代表值域。空間 \(T(2n\log(A))\) ,時間 \(T(n\log(n)\log(A))\)
CF1200E Compress Words
- Amugae 有 \(n\) 個單詞,他想把這個 \(n\) 個單詞變成一個句子,具體來說就是從左到右依次把兩個單詞合併成一個單詞。合併兩個單詞的時候,要找到最大的 \(i(i\ge 0)\),滿足第一個單詞的長度為 \(i\) 的字尾和第二個單詞長度為 \(i\) 的字首相等,然後把第二個單詞第 \(i\) 位以後的部分接到第一個單詞後面。輸出最後那個單詞。
不就是 kmp 裸題嗎,過。
等等,我看題解好像有詐。我寫一寫程式碼
廢了,寫了四遍還沒過
突然看到題解的一句話:
首先,這題要先注意題面。如果你把合併單詞的過程理解成“單詞與單詞合併”,你就會被 test 4 卡掉。【調了很久才發現】
正確的理解方式是:“單詞與合併完成的句子合併”
哦哦哦哦哦哦原來是這樣我
那複雜度不就變成 \(O(n^2)\) 了嗎?寄。
哦,原來新串和原串 getnxt 的時候只用加入與新串長度相等的原串就行了,複雜度 \(T(2n)\)
CF784E Twisted Circuit
- 讀入四個整數 \(0\) 或者 \(1\),作為如圖所示的電路圖的輸入。請輸出按照電路圖運算後的結果。
簡單題,過。