原创 新的征程......

  本來以爲要退役了呢。。不過運氣不錯,又可以繼續下去。。   還是先要吐槽一下JXOI,太坑了,JX出題人是有多懶,連續兩年搬CTSC原題上來(雖然我都沒做過。。。),據說今年T1是OIBH上的題,呵呵。。第一題不能多說,題

原创 [BZOJ3506]CQOI2014排序機械臂

    挺有意思的。。看到區間翻轉好像很容易想到splay,想到之後就沒什麼難度了。。每個節點維護一個子樹最小值,沒次刪去一個點,該打標記打標記就是。。爲了處理同大小的數要以初始序號爲第二關鍵字。。 #include<cstdio> #i

原创 [BZOJ4008]HNOI2015亞瑟王|期望DP

不會這種題啊好弱啊啊啊。。     f[i][j]表示前i張牌剩下j個機會,那麼轉移有兩種,一是i-1利用了一個機會,二是i-1沒有利用機會,也就是這樣f[i][j]=f[i-1][j]*pow[i-1][j]+f[i-1][j+1]*

原创 [BZOJ3573]HNOI2017米特運輸|貪心

    語文題。。我一開始以爲可以只從一部分子節點獲取然後就不會做了。。     看懂題之後發現確定了一個點就確定了一顆樹,那我們計算當i點不變時根節點的值,那麼這些值的衆數就是不變節點的最大數量了。。但是這個數可能很大,所以要hash一

原创 [BZOJ4003]JLOI2015城池佔領|可並堆

  一開始用倍增做,後來發現不但會MLE精度也會炸掉。。學了一下左偏樹,然後就是對每個點建一個可並小根堆,然後dfs的時候向上合併,向上的時候要像線段樹之類的一樣打lazy標記,由於乘的數都是正的所以相對大小不會變,並上去之後不停

原创 HN集訓比賽總結

  天天被虐傻哦。。不寫點總結就要廢掉了。。 Day1   T1應該是迴文自動機的題,按照我的水平期望應該是40分。。然而我爆0了,因爲少打了一對括號而掛在位運算上。。看到這種給幾種變換的題如果不是搜索的話就要往DP想,就是狀態轉移嘛,但

原创 FFT多項式乘法學習筆記

  其實我不知道我是否真的理解了FFT,但是我會用FFT優化多項式乘法了QAQ。。 (以下大多摘自算導 前置知識 1. 多項式   在一個代數域F上,關於變量x的多項式定義爲形式和形式表示的函數A(x)=∑j=0n−1ajxj,其中

原创 [BZOJ3669]NOI2014魔法森林|LCT|最小生成樹

  這題證明我有多弱。。noip之前寫了一發掛了由於noip不考這個我就沒去調了,省選之前寫了一發在火車上調了2h未果又棄了,第三次寫不記得調了多久才過,最後發現後兩次犯的一樣的傻逼錯誤,以一個變量爲參數調用兩次同樣void忘記這個變量在

原创 [BZOJ3668]NOI2014起牀困難綜合徵|貪心

  顯然是可以按位做的。我們將二進制第i位初始時爲0和1到最後的結果都求出來,掃一遍就行了,之後從高位向低位貪心,如果第i爲初始爲0能使最後爲1這位就爲0,否則如果初始爲1可以且加上這位不超過m就爲1,否則爲0。 #include<cst

原创 [BZOJ2875]NOI2012隨機數生成器|矩陣乘法

  一開始想用等比數列公式搞,但是模數可能爲合數。。然後裸上矩乘,注意要用快速乘要不然會爆long long。 #include<cstdio> #include<iostream> #include<cmath> #include<me

原创 [BZOJ3670]NOI2014動物園|KMP

  其實這也是一道水題。。自已yy完之後思路亂的要死就掛了。。   先求正常的next數組嘛,然後next[i]向i連邊,容易發現新next在i到1的路徑上,且i往下走,後面點新next也會往下走,然後我們從1 dfs下去,把路徑上的點

原创 [BZOJ3926]ZJOI2015諸神眷顧的幻想鄉|後綴自動機

  注意到非常關鍵的條件,只與一個空地相鄰的空地數量不超過20個,也就是葉子不超過20個,這意味着啥?考慮u到v的路徑,一定存在某個葉子,當以這個葉子爲根的時候u是v的祖先,也就是說所有的序列都是某個葉子爲根的樹的一條直鏈,把一棵樹看出一

原创 Codeforces Round #306 div 2 solution

  這場總的來說打的還行吧,不過fst了一題很鬱悶。。感覺從pkusc回來看CF的英文題面就和看中文一樣。。出AB的速度我覺得還是不錯的。。沒什麼難題完全可以AK的,但是構造題有細節理不清,要加強處理複雜的關係的能力。。 A:給一個字符

原创 [BZOJ2152]聰聰可可|樹的點分治

  學了學點分治,主要思想就是找重心來防止樹退化成鏈這樣的東西,感覺寫的不是很順但是1A了。。找到一個部分的重心之後答案變成兩部分,一是過重心的路徑,二是不過重心的路徑,二可以遞歸地得到,一的話可以對每個重心向下求出每個子節點的深度mod

原创 [BZOJ3997]TJOI2015組合數學|DP

   這題的方法感覺比較巧妙,對於(i,j) 和(i′,j′) ,當且僅當i>i′ 且j<j′ 的時候(也就是(i,j) 在 (i′,j′) 的左下方)這兩點不可能出現在一條路徑上,所以求出一個點集使其中任意兩點滿足上述條件,這個點集的最