原创 BZOJ4293 [PA2015]Siano(線段樹)

傳送門 這Seg確實不好寫,不過因爲它與ai的相對順序無關,所以,我們在對ai排序之後,就可做了。維護一個區間最大值,維護一個和,維護一個區間賦值的懶標記,再維護一個時間變化的標記就可以了。 因爲不論怎樣在排序過後的序列裏面右

原创 HDU6046 hash 【2017多校聯訓第二場B】

傳送門 題目大意:給出一個106∗106 的矩陣的每一位的計算方式,然後給出一個103∗103 的矩陣,求這個矩陣出現的位置。 題解:對於小矩陣的每一個位置求出這個位置以及之後63 位的值壓在一個unsigned long long

原创 組合數模任意數

本文內容是求組合數模合數的方法 本方法有侷限性,假設求CKN mod P 其中P=Πmi=1Pqii,對於任意i,j∈[1,m],(Pi,Pj)=1 若要使用本方法,則Pqii 不能太大 具體方法如下 我們知道,一般處理模合數的

原创 BZOJ1787: [Ahoi2008]Meet 緊急集合(LCA)

這一道題中,每一次詢問的答案就是這三個點,兩兩的LCA的異或和。至於這樣爲什麼是對的呢? 我們先考慮是否一定有重複的LCA呢? 如果三個點在根節點的不同子樹中,那麼LCA都是根節點,三個都重複。 如果有兩個在一個子樹中,那麼這兩個與

原创 BZOJ4556: [Tjoi2016&Heoi2016]字符串

這道題說難也不難,但是有一個很經典的維護主席樹的思想。首先我們先建出一個後綴數組,然後我們按照sa的順序建一棵以原串下表爲權值的主席樹,查詢(a,b,c,d) 的時候,先二分一個長度,找出sa中串[c,c+len] 的區間,然後查詢區間中

原创 BZOJ2705: [SDOI2012]Longge的問題

給定一個整數N,你需要求出∑gcd(i,N)(1<=i<=N) 。 不難想到(連我這個SB都想到了),最後的答案一定和Σd|nd∗(d在n中出現的次數) 有關係,所以考慮這個關係。顯然我們希望一個數只被計算一次,那麼就要考慮到底有幾個數和

原创 HDU6053 TrickGCD(容斥原理)

傳送門 考慮枚舉所有數的最大公約數g,那麼答案大概張成這個樣子 ∑g=2∞(−μ(g))∏i=1n⌊aig⌋ 其中的莫比烏斯函數是用來容斥的,不知道的可以先學習一下。 按照式子直接做是n2 的,肯定不能通過。考慮優化。想到⌊aig

原创 51nod算法馬拉松29 圖

傳送門 因爲給出的是一個非A即B的問題,我們可以考慮一下最小割(不知道是不是在亂說。。) 然後我們可以定義對於一個點u,如果在切割後u與源點S相連,那麼表示u在A集合,否則u與T相連,在B集合。 然後我們對於給出的無向圖中已有的邊(

原创 NOI2016 D類老年選手滾粗記

注:博主是一個CQ的蒟蒻,根本無法和各位菊苣同臺競技。。 Day-1:從重慶坐高鐵到成都,然後再坐高鐵去綿陽。竟然在成都站看到了之前雅禮集訓的時候認識的四川高一省選rk5的小白%%% 到了綿陽之後手錶的錶帶斷了,感覺會怒攢一波人品……

原创 BZOJ3439 KPM的MC密碼

傳送門 題意:給出n個字符串,對於每一個字符串,輸出以他爲後綴的串中編號第k小串的編號. 不是很懂爲什麼網上這道題都是什麼主席樹,這題明明可以O(N) 來實現啊.只需要Hash一下就好了. 對於每一個串的每一個後綴都存一下這個後綴的

原创 BZOJ3545: [ONTAK2010]Peaks(線段樹合併)

傳送門 這題允許離線的話,就直接線段樹合併就可以了。 這個線段樹就是一棵值域線段樹。枚舉一維表示邊權的大小,把邊權小於枚舉值的邊的兩端所在的線段樹合併了,在線段樹裏查詢第k大值就可以了。 如果是加強版的話,可以使用主席樹合併來完成。

原创 Codeforces Zip-line 650D 345Div1D(LIS)

傳送門 大意:給出一個序列,求修改一個數過後的最長上升子序列。 思路:可以用主席樹在線搞,也可以用樹狀數組離線搞,明顯後者好寫得多。我們首先讀取所有的詢問,然後就把詢問綁在給出的位置,然後我們正向做一遍LIS,反向做一遍LDS,然後就

原创 BZOJ1188 [HNOI2007]分裂遊戲(SG函數)

傳送門 拿到這道題就知道是典型的博弈論,但是卻不知道怎麼設計它的SG函數。看了解析一類組合遊戲這篇論文之後才知道這道題應該怎麼做。 這道題需要奇特的模型轉換。即把每一個石子當做一堆石子,且原來在第i堆的石子(從0開始標號)的石子個數爲

原创 BZOJ2683 簡單題(CDQ分治)

傳送門 之前聽別人說CDQ分治不難學,今天才知道果真如此。之前一直爲自己想不到CDQ的方法二很不爽,今天終於是想出來了一道了,太弱…… cdq分治主要就是把整段區間分成兩半,然後用左區間的值去更新右區間的答案,每次把區間折半。對於本題

原创 CQOI2016爆炸記

要試題的話,我現在只有Day2的試題 Update:我現在有Day1的試題了 CQOI2016 MLE滾粗。。。 Day0:去郵電報道,把鍵盤搞壞了,被那裏的人罵了。心裏詛咒了回去。。 Day1:開始考試了,一看T1不是ZJOI20