JOISC 亂寫

「JOISC 2020 Day4」首都城市

進行點分治,考慮最終的連通塊是否通過當前分治中心,若通過,則當前分治中心的顏色必選,不然分治遞歸處理。數組

若一個顏色必選,當前連通塊中全部爲該顏色的點都要選,一個點被選同時也意味着其到當前分治中心路徑上的點也都要選,不斷迭代獲得當前分治中心的答案便可。函數

還有另外一種作法:若顏色 \(i\) 造成的虛樹上有顏色爲 \(j\) 的點,則 \(i\)\(j\) 連邊,意思爲選了 \(i\) 則必選 \(j\)。對全部縮點後出度爲 \(0\) 的點取 \(siz-1\) 的最小值即爲答案。能夠用樹剖線段樹來優化建圖。優化

「JOISC 2019 Day2」兩個天線

只用考慮 \(i<j,h_i>h_j\) 的狀況,另外一種狀況取反後再作一遍便可。考慮掃描線,每一個位置 \(i\) 維護其對應的 \(h_i-h_j\) 的最大值。spa

\(i\) 日後起做用的區間爲 \([i+a_i,i+b_i]\),將其在相應的位置加入刪除便可,加入就是將維護的第一項賦值爲 \(h_i\),刪除就是將其賦值爲 \(-\infty\)blog

\(j\) 往前起做用的區間爲 \([j-b_j,j-a_j]\),將這段區間的第二項和 \(-h_j\)\(\max\) 便可。排序

這些操做均可以在線段樹上來實現,就是單點修改和區間打標記。遞歸

「JOISC 2019 Day2」兩道料理

考慮暴力 \(DP\),設 \(f_{i,j}\) 爲第一種到第 \(i\) 步,第二種到第 \(j\) 步的最大權值,複雜度爲 \(O(nm)\),沒法接受,考慮優化。get

\(DP\) 放到網格圖上來考慮,從 \((0,0)\) 走到 \((n,m)\),轉移時權值的貢獻能夠轉化爲網格圖的點是否在路徑下方或路徑上,若是在,則加上對應的權值。it

進一步觀察 \(DP\) 的過程,發現其從上一列轉移過來時,就是先對一些後綴加上一個權值,而後往前不斷取 \(\max\) 轉移過來。考慮對行差分,後綴加變成單點加,而後若一個位置爲負數,則將其後面第一個非零位置加上這個數,而後將該位置清零,這樣就實現了取 \(\max\) 的過程。class

\(set\) 維護非零位置,線段樹維護差分便可。

「JOISC 2020 Day3」星座 3

考慮從下往上掃描,對每一個縱座標維護出和該位置衝突且已經選了的星星的權值和。新加入一個星星時,比較刪除該星星和刪除和其衝突的星星權值,刪去權值更小的狀況而後更新對應位置的權值便可。

用樹狀數組維護權值,實現區間加和單點查。發現向上掃描時還需知道每一個縱座標往左往右拓展最遠的位置,用兩個並查集維護便可。

還有一個笛卡爾樹的作法,建出笛卡爾樹後,星星等價於笛卡爾樹上的一條鏈,因而問題就轉化爲了在樹上選出若干條不相交的鏈,使得權值和最大。\(DP\) 方式和 [NOI2020] 命運 相似,一樣也是線段樹合併實現總體 \(DP\)

「JOISC 2019 Day3」穿越時空 Bitaro

先將第 \(i\) 個城市的時間減去 \(i\),這樣走向下一個城市就不會流逝時間了,移動就是水平的了:

考慮用一些二元組 \((l,r)\) 和三元組 \((a,b,v)\),來描述通過一段城市的狀況。

二元組 \((l,r)\) 表示進入這段城市的時刻在區間 \([l,r]\) 內時,經過這段城市不產生費用,二元組的合併就是取交,當不存在交集時就會產生三元組。

三元組 \((a,b,v)\) 表示進入這段城市的時刻至多爲 \(a\),出去的時刻至少爲 \(b\),費用爲 \(v\)。二元組、三元組的合併是知足結合律的,所以能夠用線段樹來維護。

還有另外一種維護分段函數的作法。對於一個城市,能夠通過其的時刻爲一個區間,所以出去時刻和費用都是關於進入時刻的一次函數,概括髮現對於一段城市,出去時刻和費用是關於進入時刻的三段分段函數。用線段樹來維護這個分段函數便可。

「JOISC 2019 Day4」蛋糕拼接 3

發現只要按 \(c\) 從小到大排序就能使 \(\sum\limits_{j=1}^m|c_{k_j}-c_{k_{j+1}}|\) 達到最小值 \(2(c_{\max}-c_{\min})\)

將蛋糕按 \(c\) 從小到大排序後,問題就轉化爲了選出一個貢獻最大的區間 \([l,r]\),區間 \([l,r]\) 的貢獻爲該區間最大的 \(m\)\(v\) 的和減去 \(2(c_r-c_l)\)

相似於 [IOI2014] holiday 假期,本題也是具備決策單調性的,對於每一個 \(l\),最優的 \(r\) 是單調不降的。感性理解爲何有決策單調性就是由於新加入一個 \(r\) 後,對於 \(l_1<l_2\)\(l_2\) 得到的貢獻是大於等於 \(l_1\) 的。

用分治求解最優決策點,主席樹求區間前 \(m\) 大的和便可。

「JOISC 2020 Day2」有趣的 Joitter 交友

啓發式合併

[WC2021] 括號路徑

「JOISC 2020 Day4」治療計劃

最短路

[NOI2019] 彈跳

相關文章
相關標籤/搜索