原创 bzoj3209 花神的數論題 [數位dp]

Description: 求∏countbit(i)∏countbit(i) Solution: 枚舉11 的個數,數位dpdp 即可。 #include <bits/stdc++.h> using namespace s

原创 [Heoi 2013] bzoj3165 segment [線段樹]

Description: 要求在平面直角座標系下維護兩個操作: 1.1. 在平面上加入一條線段。記第ii 條被插入的線段的標號爲ii 。 2.2. 給定一個數kk ,詢問與直線x=kx=k 相交的線段中,交點最靠上的線段

原创 ARC068E Snuke Line [樹狀數組]

Description: mm 個區間,對於每個dd ,每dd 個位置插一個點,問每個dd 被多少個區間覆蓋。 Solution: 按照區間長度排序,小於間隔的最多覆蓋一個點,那麼樹狀數組差分解決,大於的肯定覆蓋。 #in

原创 [Sdoi 2017] bzoj4820 硬幣遊戲 [概率+高斯消元+哈希]

Description: 給出nn 個長度均爲mm 的不同0101 串,隨機生成一個無限長的0101 串,對nn 個0101 串中的每個,求出它最先在隨機串中出現的概率. Solution: 設NN 爲不爲任意一個串的概率,

原创 ARC063F Snuke's Coloring 2 [單調棧+線段樹]

Description: 二維平面上有一些點,我們可以把過這個點且平行於座標軸的直線和邊框夾成的區域塗黑。問最後剩下白色區域的最大周長(顯然是一個矩形)。 Solution: 我們可以發現這個矩形肯定經過x=w2或者y=h2

原创 AGC017D Game on Tree [博弈論]

Description: 樹上刪邊遊戲。 Solution: 具體見程序。 #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; i

原创 [HNOI 2007] bzoj1187 神奇遊樂園 [dp]

Description: 求最大權哈密爾頓迴路。 Solution: 插頭dpdp 裸題。 預處理出所有輪廓線的狀態,令dp[i][j][k]dp[i][j][k] 表示第ii 行第jj 列輪廓線狀態爲kk 的最大權值。先預處理出

原创 bzoj 2121 字符串游戲 [dp]

Description: 給出一些串和一個母串,每次可以從母串中刪除一個給出串並拼接,問最終最短多少。 Solution: 比較難的dpdp 。 最終目的計算o[i][j]o[i][j] 表示i−>ji−>j 是否可以完全消去,然

原创 [Sdoi 2014] bzoj3534 重建 [矩陣樹定理]

Description: 每條邊有一個存在的概率,問一棵生成樹的出現概率。 Solution: 相當於生成樹上存在的概率乘其他邊不存在的概率。 矩陣樹定理可以求出每棵生成樹邊權的乘積的和,那麼我們把邊權變成pi1−pipi1−pi

原创 [Poi2012] bzoj2797 Squarks [數學]

Description: 現在有nn 個互不相同的正整數xixi ,兩兩之和共有n∗(n−1)2n∗(n−1)2 個和,現在給定這些和,求x1,x2,...xnx1,x2,...xn 。 Solution: 我們可以知道x1+x2=

原创 [Cqoi 2017] bzoj4815 小Q的表格 [莫比烏斯反演]

Description: 自己看題。 Solution: 這個ff 的形式和gcdgcd 很像,事實上每次修改(a,b)(a,b) 會影響到gcd(i,j)==gcd(a,b)gcd(i,j)==gcd(a,b) 。 所以我們只用

原创 [Cqoi 2018] bzoj5301 異或序列 [莫隊]

Description: 已知一個長度爲nn 的整數數列a[1],a[2],…,a[n]a[1],a[2],…,a[n] ,給定查詢參數l、rl、r ,問在 [l,r][l,r] 區間內,有多少連續子 序列滿足異或和等於kk 。 也

原创 [Cqoi 2013] bzoj3106 棋盤遊戲 [博弈論]

Description: 兩個人移動棋子,第一個人每次可以走一格,第二個人每次可以走一格或兩格。希望最大化吃掉對方的時間。 Solution: 對抗搜索。 設dp[o][s][a][b][c][d]dp[o][s][a][b][c

原创 bzoj2759 一個動態樹好題 [lct+exgcd]

Description: 有NN 個未知數x[1..n]x[1..n] 和NN 個等式組成的同餘方程組: x[i]=k[i]∗x[p[i]]+b[i]x[i]=k[i]∗x[p[i]]+b[i] modmod 1000710007

原创 bzoj3162 獨釣寒江雪 [樹hash+dp]

Description: 求樹上本質不同獨立集個數。 Solution: 不考慮同構是一個裸的樹形dp,dp[u][0/1]dp,dp[u][0/1] 表示這個選或點不選。 現在考慮同構,從重心開始dpdp ,如果有兩個重心那麼中