原创 [BZOJ1146][樹套樹][樹鏈剖分]CTSC2008:網絡管理

鏈接自己找,BZOJ還沒開 題意:求樹上路徑第k大,單點修改,可離線 考慮樹剖維護,內層主席樹外層套個樹狀數組就完了(時空和代碼長度都全方位被整體二分吊打) 也可以整體二分 Code: #include<bits/stdc++.h

原创 [LOJ2197][線段樹][凸包][三分]SDOI2014:向量集

LOJ2197 和UOJ191unknown類似 我們知道點積等於一個向量的長度乘以另一個向量在這個向量上的投影的長度 那麼如果我們把範圍限制在180°內,則這個函數是單峯的,那就可以線段樹維護上下凸殼,查找的時候三分 但是直接維

原创 [luogu4389][生成函數][NTT]付公主的揹包

luogu4389 考慮OGF,ans=[xn]∏i=1n(11−xi)aians=[x^n]\prod_{i=1}^n(\frac{1}{1-x^i})^{a_i}ans=[xn]∏i=1n​(1−xi1​)ai​,其中aia_

原创 [CF1137F][LCT][樹狀數組]Matches Are Not a Child's Play

CF1137F LCT神題。。。 首先三操作顯然就是兩個二操作 然後我們考慮一操作會造成什麼影響 我們將權值最大的那個點看作根,一個點進行一操作後,他到根節點這條路徑就會最後被刪除,其他的點刪除順序不變,這很顯然 考慮這段鏈,一定

原创 [BZOJ3203][凸包][三分]SDOI2013:保護出題人

OJ掛,鏈自找 由題目的特性可知,我們可以把血量求前綴和,然後視爲同時攻擊 則每次的yiy_iyi​可以表示爲sum[i]−sum[j−1]x[i]−(i−j)∗d(1≤j≤i−1)\frac{sum[i]-sum[j-1]}{x

原创 [LOJ2008][半平面交]SCOI2015:小凸想跑步

LOJ2008 把每個三角形的面積用叉積表示,每個三角形和0,1,p0,1,p0,1,p組成的三角形組合可以列出n−1n-1n−1個不等式,然後把不等式轉成直線做半平面交即可 Code: #include<bits/stdc++.

原创 [LOJ2011][主席樹]SCOI2015:情報傳遞

LOJ2011 經過分析,設某個點的起始時間爲ttt,當前時間爲iii,則對答案有貢獻的點需滿足i−t>Ci-t>Ci−t>C,即i−C>ti-C>ti−C>t 當然把簡單路徑拆成到根節點的四條路徑,那麼修改一個點會對它子樹產生影

原创 [LOJ2174][主席樹]FJOI2016:神祕數

LOJ2174 假設當前的神祕數爲xxx,我們加入一個數yyy後新的神祕數是什麼? 顯然如果y>xy\gt xy>x,則xxx依然是神祕數 否則我們本來能夠表示出[1,x−1][1,x-1][1,x−1]的數,則現在我們可以表示出

原创 [LOJ2056][CDQ][樹狀數組]TJOI / HEOI2016:序列

LOJ2056 設一個位置的數的最大可能值爲mxmxmx,最小爲mnmnmn,原本值爲valvalval DP時顯然需要滿足以下條件: j<ij<ij<i valj<mnival_j<mn_ivalj​<mni​ mxj<vali

原创 [LOJ3096][數學]SNOI2019:數論

LOJ3096 實際上是要求一個方程ai+Pk1=bj+Qk2a_i+Pk_1=b_j+Qk_2ai​+Pk1​=bj​+Qk2​,可以發現不斷增加p的時候左邊的取值modQmodQmodQ會成一個環,那就把這個環搞出來,把對應的

原创 [最短路][位運算優化建圖]walk

無來源 對於所有數據,n≤2e5,m≤3e5,1≤vali<220n≤2e5,m≤3e5,1≤val_i<2^{20}n≤2e5,m≤3e5,1≤vali​<220 位運算優化建圖是我瞎取的名字 考慮新建點來表示val,每個點向

原创 [BZOJ4888][樹狀數組]TJOI2017:異或和

BZOJ4888 可以枚舉二進制每一位,看看哪些對它有貢獻 先弄成前綴和,然後增量構造 如果當前前綴和的當前這一位爲1,那麼要滿足它減去之前的一個前綴和之後這一位仍然爲1,就是要求減去的那個前綴和的小於枚舉的這一位的部分小於當前前

原创 [LOJ3098][矩陣快速冪]SNOI2019:紙牌

LOJ3098 這種數據範圍不是推式子然後lucas就是矩陣快速冪了 在一副王牌中,任意連續三個數構成的順子的出現次數顯然只用考慮0,1,2,否則我們直接弄三個刻子效果是一樣的 考慮轉移,先考慮非初始牌的轉移,設當前爲第iii位,

原创 [BZOJ4890][樹形DP]TJOI2017:城市

BZOJ4890 看到題還以爲要二分,結果連二分都不用 枚舉斷邊,計算兩個子樹直徑,更新答案,沒了 Code: #include<bits/stdc++.h> using namespace std; inline int rea

原创 191026考試題解

T1:求一個網格圖從原點出發走n步,每步等概率往上下左右走,最終到達的點和原點之間的歐氏距離的期望 打個表可以發現是n,完了 具體證明可以推式子或者三角函數 #include<bits/stdc++.h> #define mod