原创 【SPOJ TSUM】Triple Sums(FFT+容斥定理)

這道題是叉姐講義的第一道題,題意要求對於所有S,三個編號互不相同的數之和等於S的方案數。 如果是沒有互不相同這個要求,那麼題目就非常簡單,直接用FFT求出x的s次方的係數即可。 但是如果要求互不相同,那麼就考慮需要用到容斥定理。 具體式子

原创 【HDU 5140】Hun Gui Wei Company(主席樹)

這道題在一開始參考了題解之後是用線段樹寫的,後來MLE了讓人很憂傷,因此後來改用內存常數較小的主席樹才過了,正好這幾天在學習主席樹(orz發明者) 首先因爲數據範圍很大,首先就會想到離散化。將問題簡化一下,是查詢從L的值從LL到HL並且A

原创 【HDU 5021】 Revenge of kNN II

這道題當時比賽的時候沒時間看了(雖然有時間也不一定做得出來_(:з」∠)_),但是其實思路沒有那麼複雜 主要就是對於每一個詢問,因爲所覆蓋點的數量具有單調性,因此二分枚舉所覆蓋點的半徑,然後可以找出左邊點的個數和右邊點的個數 若個數==K

原创 【HDU 4609】3-idiots(FFT)

這道題也是FFT的入門應用題之一了,求任意不同的三條邊能形成三角形的概率。 首先我們可以先用FFT求出任意兩條(可相同)的邊能組成的長度的方案數。 那麼現在就需要去重了,我們可以想到對於組成長度爲奇數的邊直接除以2即可(因爲與x,y的先後

原创 【HDU 5001】Walk(矩陣快速冪+概率DP)

這道題因爲n不會太大,因此設dp[i]的意義爲結尾的點爲i的且滿足條件的概率 因此可以將其寫爲一個1*n的矩陣,然後將其狀態轉移矩陣表示出來 將狀態轉移矩陣列出來了之後,將刪除的點的轉移全部改爲0,這樣就可以愉快地利用矩陣快速冪進行求解了

原创 【HDU 1890】Robotic Sort(Splay)

這道題就是Splay基礎的旋轉和刪點,先將需要刪的點的位置記錄下來並且按照翻轉的先後順序排序 然後每一次都將該點旋轉至根,答案就是左兒子的大小加上i,再將左兒子旋轉且將根刪除就可以了 #include<cstdio> #include<

原创 【HDU 4441】 Queue Sequence(Splay)

這道題也是一道splay的基礎操作的集合題,主要包含有三種操作: insert p :在p位置插入當前未出現的最小的數,如當前出現了1 2 3 6,那再插入4 且正數和負數同時插入,而負數插入的位置要求:該負數左邊負數的個數和該數的相反數

原创 【COGS 930】找第k小的數

主席樹的基礎題,也沒什麼好說的主要再拿出來練一下整體二分 主席樹code: #include<cstdio> #include<cstring> #include<algorithm> #define lson l,mid #defin

原创 【HDU 4453】 Looploop(Splay)

#include<cstdio> #include<cstring> #include<algorithm> #define keytree (ch[ ch[root][1] ][0]) using namespace std; con

原创 記第一次區域賽--鞍山之行

第一次參加區域賽的旅程還是可以說是很圓滿吧。 我們的火車是凌晨兩點從杭州出發的,當時我查了一下我們出發前後的票,發現餘票的數量都還很多。我以爲我會遇到滿車的ACMer(因爲好激動可以看到這麼多ACMer),因此一直很期待,結果上車之後一個

原创 【HDU 1812】Count the Tetris

這道題是一道標準的polya定理的題 對於polya定理的話主要是補一下置換羣的相關知識,然後跟着推幾遍就大概有個感覺了 主要分爲三步: 1、找出置換羣。 2、對於每個置換羣研究出循環節數 3、利用定理求解 因此對於這道題來說,一共有8種

原创 【BZOJ 2809】dispatching(主席樹)

這道題用主席樹做做感覺非常舒服~~~ 首先題意來看,是說需要在樹形結構中找到一個點i,並且找到這個點子樹中的一些點組成一個集合,使得集合中的c之和不超過M,且Li*集合中元素個數和最大 簡單地想想首先需要枚舉每一個點,然後在子樹中找到最小

原创 【ZOJ】3812 We Need Medicine

這道題就題意來說其實就是一道簡單的記錄路徑的0,1揹包,告訴你n個物品,每種物品只能取一次,再有q個詢問,問你是否能在滿足選出物品的w之和爲m的情況下,滿足t之和爲s,若可以則任意輸出一種方案。 因此我們可以設計狀態,dp[i][j][k

原创 【POI2011】 Meteors

這道題是整體二分的基礎題,可以通過同時對所有詢問進行二分,並且使得貢獻值不用重複計算,所以使得效率很高 http://victorwonder.is-programmer.com/posts/70210.html  已經講得很清楚了 co

原创 【HDU 3436】Queue-jumpers(Splay)

Splay的基礎操作。問題的關鍵就在於N非常大,就算是利用Splay數組也是遠遠開不下的,因此很自然地想到了hash一下 可以將所有要進行Top的節點和Query的節點 然後對於每一個節點或者每一個段,可以將它的長度表示出來(方便起見每個