原创 bzoj4035: [HAOI2015]T3

發現翻轉相當於增加一個白格 對於一個白格子,它的SG值只與它還能跳的次數有關,如長度10,SG[4]=SG[5]。於是不同的狀態只有sqrt(n)個。只要求出還能跳k步的位置的SG就能得到答案。 暴力DP即可,貌似O(n)能過 #incl

原创 bzoj3440: 傳球遊戲

這不傻逼題嗎! 一開始連題目都被讀懂。。。 第1類人,順着傳來的方向傳給下一個人。 第2類人,逆着傳來的方向傳給上一個人。 第3類人,順着傳來的方向傳給下面第二個人。 第4類人,逆着傳來的方向傳給上面第二個人。 現不知是從哪個人開始傳,

原创 bzoj1194: [HNOI2006]潘多拉的盒子

一看這道題自動機就好慌,但是多想想並不難。 S<=50,最長路根本不用考慮,直接考慮如何判斷兩個自動機是否一個是另一個的升級。 由於自動機的輸出可以是無限的,因此不放壓縮狀態,用(x,y)表示在第一個自動機x點,第二個自動機y點可行,然後

原创 bzoj4964: 加長的咒語

求區間最長匹配的括號序列子串。 很有意思的括號,但是我有些細節沒處理好,導致代碼長,算法複雜。。 如果有更好的算法我也很想知道啊>.< 考慮一個括號序列A=(B1)(B2)(B3)…,其中與某個括號匹配的相對的括號唯一。證明顯然。 有一個

原创 快速沃爾什變換FWT

大概在做CC月賽的時候看到了這樣一道題:https://www.codechef.com/OCT17/problems/XORTREEH 題意是要你做一個%330301441的類似FWT的東西。定義數組A,B,C。定義一個操作A⊕B=C

原创 bzoj3242: [Noi2013]快餐店

——來自一個失去夢想的鹹魚miaom 考慮海蜇基環樹的一般套路,在確定快餐店位置的情況下,最優解中環上必有一條邊是廢的。思考枚舉這條邊,我們需要在最快的時間求剩餘部分的直徑。當前答案就是直徑/2,證明非常簡單,就離快餐店最遠的點一定是直徑

原创 cf757G. Can Bash Save the Day?

簡述題意:給一棵n個節點的數和一個n的數組(n的排列),支持兩個操作:1 詢問a[l]~a[r]的所有點到某個點的距離,2 交換a[x]與a[x+1]。 一開始想到了這道題bzoj4012: [HNOI2015]開店,大概看了之後發現是開

原创 bzoj4827: [Hnoi2017]禮物

看到要求∑(xi − y i+k -c )2的最小值。首先將xi − y i+k看作整體,得到一個關於c的二次函數nc^2+pc+q=0。發現q的形式將y數組翻轉類似一個卷積,然後又發現其中每個值小於998244353,然後一個NTT上去

原创 bzoj4767: 兩雙手

注意一個條件,ax*by!=bx*ay,所以每個點所需的每隻手的次數是固定的,於是就可以轉換爲網格圖(注意這裏|座標|<=500*500)中每次向上或向右走一步。因爲障礙點較少,可以計算無法到達的方案數=先走到某一個障礙,再隨便走。複雜度

原创 新博客?

我就放個鏈接:https://mioam.github.io/

原创 可持久化treap

平衡樹是一個有用的結構,但是常用的splay等由於均攤複雜度和旋轉操作,無法方便的可持久化。 這時候跳出一個treap,他可以可持久化! treap是一種笛卡爾樹,有兩個值:位置與權。這樣構建出來的treap滿足兩個性質:1、左兒子位置小

原创 noip2017滾粗記

啊,蒟蒻noi盤滾粗了啊 我可能除了T1全GG了啊 。。 。。 。。 。。 100+80+60+80+100+70 emmmm

原创 cf755G. PolandBall and Many Other Balls

一個解法→ 一句話題意:給出1~n的序列,一個組的定義是1或2個相鄰的數字,求每個數字最多屬於1個組、共1~k個組分別的答案,對998244353取膜。//我語文差你來打我啊 有一個SB的DP算法:dp[i][j]=dp[i-1][j]+

原创 uoj275. 【清華集訓2016】組合數問題

智力孤危。。 這道題可以根據lucas定理,把C(n,m)是k的倍數轉換爲n,m的k進制數,某一位的組合數是k的倍數,也就是n,m在k進製表示下n有一位比k小(大)。這樣子的話就轉換爲一個數位DP,就能做了。 題解貌似就把lucas推了一

原创 codeforces 794G. Replace All

題目大意:給兩個'A''B''?'組成的串XY,'?'可以是'A'或'B',求所有'?'的情況下,將'A''B'換成兩個長度小於n的01串的方案數和。 這好像有一些奧妙重重的性質。 先考慮一個簡單的情況:第一個串有a個'A',第二個串有b