- Mar 02 Sat 2024 12:13
-
新的部落格
- May 31 Wed 2023 21:40
-
AtCoder Beginner Contest 255 pG - Constraint Nim 解題心得
- Feb 10 Fri 2023 14:35
-
AtCoder Beginner Contest 288 pE - Wish List 解題心得
- Feb 09 Thu 2023 15:12
-
AtCoder Beginner Contest 256 Ex - I like Query Problem 解題心得
AtCoder Beginner Contest 256 Ex - I like Query Problem 解題心得 (題目)
解題概念: SGB(Segment Tree Beats, 吉老師線段樹)
解題思路(要看解法的讀者可略過):一開始想到的是線段樹+懶標,但操作一就讓我停止了這個想法,接著想到利用莫隊的離線演算法來實現,但是區間這兩種操作還是很難搞定,加上這樣時間複雜度至少是O(N.sqrt(Q)),也許因為需要甚麼資結後面再多個log之類的(?,雖然這題有8s,但感覺就不可能過。
解題方法:這題的解題策略就是類似使用線段樹+懶人標記,只是因為這題的操作1並沒有一個規律性,沒辦法直接用懶人標記達成效果,但這裡可以使用的是Segment Tree Beats,就是我們暴力執行操作1,但是記得做到一塊數字都一樣的節點就停止,這裡看似時間複雜度會退化成O(NQ),但是因為操作1有個性質: 做最多 log A_i 次 (約等於17)全部數字都會變成1,所以其實時間複雜度會接近於O(NlogN+QlogNlogA),因此能通過。
Java solution code:
- Sep 13 Tue 2022 18:54
-
AtCoder Beginner Contest 268 Ex - Taboo 解題心得
- Sep 03 Sat 2022 09:49
-
ZeroJudge i629 - 序列操作問題 解題心得
ZeroJudge i629 - 序列操作問題 解題心得 (題目)
解題概念: Trie
解題方法:首先最直觀的方法是直接暴力,但那樣是O(N^2),這題N = 2*10^5顯然不會通過,所以要想想別的方法。
可以發現這題前面的三個操作似乎用類似 set 的資料結構就可以完成,但是這裡需要 xor ,我們可以把數字轉成二進位,並把他視為一個序列,用 trie 來儲存,使用 trie 的話,對於被 xor 1的那個 bit,就等價於把兩個子節點交換,而我們可以透過維護子樹大小來查詢,最終時間複雜度為O(NlogC)。
給讀者額外的挑戰: N<=80000、把題目操作4改成"and",其他不更動,那要怎麼做呢? (提示:O(N^2)的話大概會炸)
- Jul 30 Sat 2022 19:57
-
CodeForces Round 782. pC 解題心得
- Jul 11 Mon 2022 22:02
-
CodeForces Round 805 pG2. Passable Paths 解題心得
CodeForces Round 805 pG2. Passable Paths 解題心得 (題目)
解題概念:Heavy-Light Decompositon
解題方法:題目要求的就是檢查集合他們是否在同個路徑,可以把他轉成要求樹上區間sum的問題(因為如果點全部在一條路徑上,就代表應該要有一組(x,y)他的那條路徑加起來等於集合點的數量,枚舉有O(N^2)個,但是因為樹的性質代表一個可以選最低點(dfs較深的),枚舉變成N個,利用Heavy-Light Decompositon每次查詢為O(logNlogN)
Java solution code:
https://wtools.io/paste-code/bDtG
- Jul 03 Sun 2022 17:46
-
ZeroJudge i510 尋找子字串 解題心得
- Jun 22 Wed 2022 16:18
-
ZeroJudge h901 電橘子與電耗子 解題心得
ZeroJudge h901 電橘子與電耗子 解題心得(題目)
解題概念:二分搜、二分圖匹配、匈牙利演算法
小故事:第六屆簡單的小競賽是我參加第一次becaido的小競賽,理所當然的被打爆,只解出很模板的pC,當時和朋友花了很多時間在解這題,但由於圖論知識不足,一直在原地打轉。最近剛好翻到這題,想說花點時間想一下,馬上就有了突破,也順利AC,算是彌補了當時的遺憾。
解題方法:其實和i179有點像,就是二分圖匹配,但是這題的概念也很像g598,就是可以二分搜最小cost,每次對於可使用(低於mid)的邊們做二分圖匹配,看能不能配好。
Java solution : https://hackmd.io/@r1cky/ByL9GIl95
- Jun 22 Wed 2022 15:53
-
AtCoder Beginner Contest 247 G - Dream Team 解題心得
- Jun 22 Wed 2022 12:05
-
AtCoder Regular Contest 142 C - Tree Queries 解題心得