原创 【BZOJ】4804 歐拉心算 莫比烏斯函數+歐拉函數+數論分塊

題目傳送門 來來來,推式子啦: ∑i=1n∑j=1nϕ(gcd(i,j))=∑i=1n∑j=1n∑d=1n[gcd(i,j)=d]×ϕ(d)=∑d=1n(ϕ(d)×∑i=1⌊nd⌋∑j=1⌊nd⌋[gcd(i,j)=1]) 然

原创 【CODE[VS]】1228 蘋果樹 樹狀數組

題目傳送門 爲什麼我拿到這題的第一反應是樹剖啊……我到底在想些什麼啊 然而這題被分類在樹狀數組裏,於是我就把想法往樹狀數組上靠,依然沒有任何思路 於是我放棄了樹狀數組的解法,想用樹剖暴艹這題。 卻突然驚訝的發現:樹剖你妹啊,這題不

原创 【BZOJ】2588 Spoj 10628. Count on a tree LCA+主席樹

題目傳送門 如果是強制在線的話,那就只能用主席樹了。 這題的主席樹建立方法也是挺好的,每個節點向它的父親節點建立主席樹。 對於每個詢問(x,y) ,抓住x,y,lca(x,y),father[lca(x,y)] 這四個點,初始化這

原创 【BZOJ】3668 [Noi2014]起牀困難綜合症 貪心

題目傳送門 題目想法好+1,貪心新技能get。 把初始值二進制拆分,分三種情況討論: 如果當前位爲0,但是經過所有操作後爲1,顯然這一位爲0最優。 不滿足情況1,如果當前位爲1,經過所有操作後還是1,並且答案加上這一位沒有超過m

原创 【BZOJ】1901 Zju2112 Dynamic Rankings 樹狀數組+主席樹

題目傳送門 樹狀數組套主席樹什麼的真的好迷啊……還是整體二分比較平易近人(大霧)。 我們考慮主席樹的修改,如果像以前一樣前綴動態開點,那麼修改一個點就要把後面的主席樹全部重建,時間複雜度O(m×n×logn) ,和暴力差不多嘛……

原创 【BZOJ】3524 [Poi2014]Couriers && 【BZOJ】2223 [Coci 2009]PATULJCI 主席樹

BZOJ3524 BZOJ2223 好久都沒有接觸主席樹了,都已經忘的差不多了……說好的定期複習呢? 主席樹的還是像以前一樣的前綴動態開點,如果當前主席樹的左兒子容斥後的sum>r−l+12 ,那麼答案肯定在左兒子中;否則右兒子也

原创 【洛谷】3389 【模板】高斯消元法

題目傳送門 我當高斯消元是什麼神奇的算法啊,原來就是小學數學的解方程組…… 高斯消元的核心思想就是消元…… 對於第i 個方程,把第i 項的係數變成1 ,然後對第i+1⇒n 個方程,通過等式的減法把第i 項的係數變成0 。 這樣一直

原创 【BZOJ】2982 combination Lucas

題目傳送門 這題嘛,就是一道Lucas的裸題……暴力水博客.png 直接上Lucas就好啦。 附上AC代碼: #include <cstdio> using namespace std; const int mod=10007;

原创 【BZOJ】1305 [CQOI2009]dance跳舞 網絡流

題目傳送門 又是一道神題……爲什麼網絡流的建圖都這麼詭異啊…… 寫在前面:互相喜歡什麼的……cp都得死!身爲單身狗的我手中多出了不知名的火把和汽油 考慮把所有的男孩和女孩都拆成兩個點,分別表示喜歡點和不喜歡點。 對於一對相互喜歡

原创 【BZOJ】1251 序列終結者 Splay

題目傳送門 這題其實就是一道Splay的區間修改模板題,太棒啦,又水了一篇blog! 其實Splay的區間加上一個值用的就是線段樹的延遲標記的思想,實現就和下放區間反轉的標記一樣。區間求最大值也是類似的。 於是這題就是練一下碼力的

原创 【BZOJ】3991 [SDOI2015]尋寶遊戲 樹形DP+虛樹+set

題目傳送門 其實這題並沒有真正的用到虛樹,只是用到了虛樹的思想。 首先考慮暴力樹形DP,時間複雜度還是O(n×m) ,必須要優化。 然後我們把思路轉移到虛樹上,發現問題轉化爲改變一個節點是否爲關鍵點,答案就是虛樹上所有邊權*2。

原创 【BZOJ】2286 [Sdoi2011]消耗戰 樹形DP+虛樹

題目傳送門 第一眼就是樹形DP,然而看到數據範圍以後望而卻步……O(n×m) 的時間複雜度實在受不了啊…… 觀察數據範圍,發現題目給出的是∑ki≤5×105 ,那我們就要考慮減少每次詢問的時間複雜度,不能是O(n) 的,應該和ki

原创 【BZOJ】2038 [2009國家集訓隊]小Z的襪子(hose) 莫隊

題目傳送門 開坑莫隊,個人感覺莫隊的操作有點類似於分塊,就是把原數組分成O(n√) 塊,然後對於排序後的詢問,移動l 和r 兩個指針來計算答案,於是詢問之間就有可能有相同的部分,這樣就可以節省時間了。 至於莫隊的時間複雜度爲什麼是

原创 【BZOJ】3781 小B的詢問 莫隊

題目傳送門 有了上一題的鋪墊,這題就是一道莫隊的裸題,直接用和上一題一樣的套路搞就行了。 不過莫隊的sort好像有些什麼神奇的trick:如果兩個詢問左端點所在的塊相同,就把右端點按左端點所在塊的奇偶性分類排序,就是下面那樣:(至

原创 【Codeforces】600E Lomsat gelral (dsu on tree)

題目傳送門 優美的暴力什麼的太暴力了吧…… 首先我們證明一下dsu on tree的複雜度,我們挑出一個節點的重兒子,就是樹剖裏的重兒子,把所有的輕兒子的信息加入到重兒子裏,每次的樹的大小至少翻倍,所以時間複雜度爲O(nlog2n