原创 省選模擬47

A. 老夫   考慮按照$c$遞增的順序查找答案,那麼發現需要進行的操作是區間加下標,全局最值。   直接上分塊凸包就行了。 B. 打算   考慮將座標(x,y)轉化成(x+y,x-y),這樣就將兩維獨立了出來。   對於每一維分別考慮,那

原创 省選模擬45

A.   考慮給整個矩陣按照每行爲一個字符串建出一顆trie樹,然後給每個節點存一下出現在第幾行就可以統計答案。   考慮如何得到整個矩陣的答案,那麼接下來要做的就是將trie的第一層節點刪掉,這個東西可以簡單地用trie樹合併實現,在合併

原创 省選模擬39

A. gift   講過的原題,然而考場感覺T2T3更可做所以沒有給多長時間。   假如當前序列已經確定,那麼將每個位置對應的兩個數連一條邊,最終的最少操作次數就是$n-$環的個數。   所以我們現在只需要求出來形成$k$個環的方案數。  

原创 省選模擬36

A. Alchemy   發現最優策略是唯一的,也就是說,假如要將n個盤子從1移動到3,那麼必須先將n-1個盤子移動到2。   然後可以發現這個東西每走一步所需要的時間是確定的,所以只需要確定當前的狀態。   一直遞歸下去即可。 B. Al

原创 省選模擬37

A. 奶酪   這個東西做法應該很多。   我的做法是,直徑合併,在dfs序上處理出來前後綴的直徑和兩個端點,詢問的時候直接合並兩段前綴和後綴即可。   換根dp也是可以的,然而要記錄最大值,次大值,次次大值,所以就比較噁心。   題解的做

原创 省選模擬35

A.   在dfs序上考慮,那麼子樹就對應着dfs序上的一段區間,所以是個奇怪的偏序問題。   不考慮複雜度的話簡單的線段樹套set就可以實現,然而複雜度是2個log,這道題卡掉了。   所以考慮開兩棵線段樹,分別維護前綴和後綴,那麼討論完

原创 省選模擬30

A.   由於答案是三次方級別的,所以不難想到枚舉三位考慮這三位上的貢獻。   這個東西可以用bitset簡單優化,複雜度可以做到$nk^3/w$。   假如k非常大,那麼考慮暴力枚舉每個點對貢獻。這個過程可以通過壓位來實現,複雜度$n^2

原创 省選模擬32

A.   看了半天發現這玩意就是個積性函數,滿足質數處的取值好求,$p^k$處取值可以簡單dp預處理,所以直接套個min_25篩就完了。   於是這題就成了一大堆模板的堆砌,拉格朗日插值+min_25篩+dp,雖然看起來很麻煩但是似乎都很顯

原创 省選模擬31

T1.   直接寫出來最基礎的轉移方程,發現假如去掉單調遞增的限制就是裸的斜率優化。   所以離散化一下,在線段樹上維護凸包就可以解決單調增的限制。   當然cdq分治也可以。 T2.   考慮逐位確定,那麼現在的問題是已經知道了前面的字母

原创 省選模擬27

A.   由於題目中給出了一些奇怪的條件,所以大概可以想到暴力模擬這個過程迭代若干輪。   考慮如何比較好的進行迭代的過程,處理出一個數組$f[i][j]$表示在恰好第i輪從j這個位置走到n的概率。   那麼考慮隨時維護一個數表示遊戲還沒結

原创 省選模擬28

A.   考慮一個暴力的做法,枚舉樹上的每條鏈,那麼貢獻只和鏈兩端有關。   對於一個端點,他的貢獻可以通過簡單dp求出來。通過多項式可以將這個dp的過程優化到$nlog^2$。   考慮上面那個東西的瓶頸在於枚舉點對,那麼可以將點對分類。

原创 省選模擬13

A. 同桌的你   考試的時候大概一上來就會了,然而感覺非常麻煩,不想打。等到最後剩1個半小時的時候開始打,到最後也沒調出來,非常自閉。   不難發現將關係連邊得到的是一棵基環樹,所以可以考慮斷掉環上任意一條邊,然後分選擇這條邊和不選這條邊

原创 省選模擬24

A.   不難想到一個暴力的思路,就是每次暴力匹配,看匹配數的最大值是多少。   然後可以想到用霍爾定理來優化這個匹配的過程。由於題目中保證了區間沒有包含關係,所以霍爾定理枚舉的其中一部點必然是一段連續區間。   題解的做法比較巧妙,那麼存

原创 省選模擬14

A. 開車   大意就是在一張圖上給某些邊複製1遍,使這張圖存在歐拉回路。   由於複製一條邊必然會修改兩個點的狀態,所以不難想到可以將這些點兩兩配對,於是可以求出來原圖的一顆最小生成樹,那麼需要複製的邊一定在最小生成樹上,所以在樹上兩兩配

原创 省選模擬21

A. 燈   首先發現如果將一段連續區間變成一個點,那麼加入一種顏色的貢獻只和這種顏色所有點兩邊的已經有顏色的點數有關。   所以就可以考慮根號。對於點的個數小於根號的顏色可以直接暴力枚舉每個周圍顏色。   對於大於根號的顏色,可以考慮在加