原创 計數初步

Outline 計數原理 組合數/二項式係數 錯位排列 卡特蘭數/卡塔蘭數 斯特林數/斯特靈數 三元環計數 加法原理 乘法原理 定義 計算 小♂試牛刀 ∑i=1nXi=m,(Xi>0)\sum_{i=1}^n

原创 AFO

自閉文化課選手退役文化課了。 博客時不時可能還會更新,大學ACM見吧。

原创 CRT&EXCRT 中國剩餘定理及其擴展

中國剩餘定理(孫子定理) 有這樣一個問題: {x≡a1(mod m1)x≡a2(mod m2)……x≡an(mod mn)\begin{cases} x\equiv a_1(mod~m_1)\\ x\equiv a_2(mod~m_

原创 [BZOJ5224]毀滅

菜的真實,今天打膜泥賽,想了半天只想到了(Tn2)(Tn^2)(Tn2)的暴力做法,30分本來覺得還可以了,神仙直接AAA了,自閉了。 30分:我們發現OrzOrzOrz(膜法值)、atkatkatk(攻擊力)、defdefdef

原创 CODEFORCES ROUND #406 (DIV. 2) E. TILL I COLLAPSE

考慮暴力怎麼做?對於每一個kkk,貪心地雙指針掃一遍。如果加入下一個點就超過kkk個,那就結束當前段,並且將lll指針移到當前位置的下一位。 考慮如何優化尋找的過程。整體二分可以在log n的時間複雜度找到區間第k大值在哪裏。假如

原创 [FJOI2016]神祕數

^ _ ^可能是之前寫過這道題(菜雞當然是看題解的),有點印象的緣故,這次再看,思考了1h左右獨立解決了問題qwq。 本題的關鍵在於一個區間組成的數集的子集mexmexmex如何快速找出。假如子集mexmexmex爲ans+1an

原创 [SCOI2016]美味

這道題之前首先有一個最簡化的版本,給定一個序列,求最大區間異或和。 首先,區間[l,r]的異或和可以是[1,r]xor[1,l−1][1,r]xor[1,l-1][1,r]xor[1,l−1]。我們可以維護一個前綴異或和,每次將它

原创 可持久化數組

嘿嘿,題目只是一個幌子,我還是肝主席樹233。 但是,爲什麼會有這樣一個名字?考慮假如不管空間,我們有一個最暴力的寫法。開一個m∗nm*nm∗n的數組,每次修改某一時刻某一位置的值,我們直接把它修改掉就好。然後把它當成新的時刻,所

原创 [JSOI2018]列隊

性質1:把若干個人塞到一個連續區間內,那麼從左向右依次對應一定是最優的。 性質2:一定存在一個分界點,左邊的人都是在區間點的左邊,右邊的人都是在區間點的右邊。 因此,很顯然有一個nlog2nnlog^2nnlog2n的做法,二分分

原创 [SDOI2009]HH的項鍊

給定一個序列,多組詢問,每次給定[l,r],求區間內本質不同的數的個數。 寫這道題是爲了解決後面的一個問題,廢話不多說。 這題看着,其實思路挺多的。分塊、莫隊、樹狀數組、主席樹……但對我後面有用的是樹狀數組和主席樹,所以只討論它們。

原创 主席樹模板(帶修改)

P2617 Dynamic Rankings 顯然單單寫一個主席樹是不夠的,主席樹可以維護的是靜態區間第k大。本題要求動態修改,所以考慮帶修改的主席樹怎麼寫。 首先很顯然一個小thick是,我們把修改的部分和原本靜態的分開,單獨形成

原创 [FJOI2016]建築師

LOJ 一個長度爲n的排列,從左向右最大值更新了A次,從右向左更新了B次。求方案數。 畫一張圖: 畫出的線段即爲每一個max改變的峯。兩峯之間可以插進去一些數。對於最高點左邊的數來說,相當於每一個線段引領了一些數,這些數在它的右邊

原创 [HAOI2018]蘋果樹

……先自閉兩個小時 好吧,不會寫,看了看題解,說一下思路吧。 首先第一個小tricktricktrick是,按照題意去建樹,nnn個點能組成的二叉樹的數量正好是n!n!n!。因此求期望的時候我們不需要乘概率了,直接累加答案就好。

原创 主席樹模板

#include<bits/stdc++.h> using namespace std; const int N=2e5+10; int n,m,tot,sz,a[N],b[N],sum[N*20],ls[N*20],rs[N*20]

原创 [AHOI2012]樹屋階梯

這題吧,就想想思路算了。又是高精度,還需要高精度除法,我是真的佛了。 階梯高度是nnn,然後你需要用nnn個長方體拼成這個形狀。問本質不同的方案數。 首先是感覺到與卡特蘭數有關,然後發現每一列總會有一個鋼材的上端和下端。爲了保證方