原创 P2401 不等數列

P2401 不等數列 傳送門 思路:這個數據k<n≤1e3k<n\leq1e3k<n≤1e3。顯然可以考慮dpdpdp。 令dp[i][j]dp[i][j]dp[i][j]表示前iii個數有jjj個小於號的排列數。 假設我們已知前

原创 Codeforces Round #481 (Div. 3)(A-G)題解

Codeforces Round #481 (Div. 3)(A-G)題解 傳送門 A. Remove Duplicates 思路:先用一個vis[]vis[]vis[]記錄那些數出現過,儲存他們最後一次出現位置,然後排個序輸出即

原创 Tree(樹形DP)

Tree(樹形DP) 不太熟,記錄一下思路 傳送門 思路:對於樹上某一個點的連通點集的數量,我們可以以它爲根進行樹上dpdpdp。 根據乘法原理:dp[u]=dp[u]×∏v∈son(dp[v]+1)dp[u]=dp[u]\tim

原创 AtCoder Beginner Contest 042題解(ABCD)

AtCoder Beginner Contest 042題解(ABCD) 傳送門 A - Iroha and Haiku (ABC Edition) 簽到題,直接判斷是否是兩個555,一個777。 #include<bits/st

原创 ABC.173.F - Intervals on Tree

ABC.173.F - Intervals on Tree 傳送門 題意:給定nnn個結點n−1n-1n−1條邊的樹,求結點的所有子集(區間[l,r])(區間[l,r])(區間[l,r])的連通塊的和。 思路:考慮最開始爲nnn個

原创 AtCoder Beginner Contest 043題解(ABCD)

AtCoder Beginner Contest 043題解(ABCD) 傳送門 A - Children and Candies (ABC Edit) 題意:求∑i=1ni\sum\limits_{i=1}^n ii=1∑n​i

原创 Codeforces Round #479 (Div. 3)(A-F)題解

Codeforces Round #479 (Div. 3)(A-F)題解 傳送門 A. Wrong Subtraction 思路:簽到題,根據題意模擬即可。 時間複雜度:O(k)O(k)O(k) #include<bits/st

原创 FZOJ.Problem 2129 子序列個數

FZOJ.Problem 2129 子序列個數 傳送門 思路:dpdpdp,令前iii個數的子序列個數爲dp[i]dp[i]dp[i], 若iii與前面i−1i-1i−1個數都不同則dp[i]=2×dp[i−1]+1dp[i]=2

原创 序列自動機(Se AM)的總結

序列自動機(Se AM)的總結 聽起來很高大上,實際上代碼簡單的不行。 剛剛學,整理一下原理和應用。 原理:用一個數組next[i][j]next[i][j]next[i][j]維護第iii位 (從下標111開始) 字符後 (也就

原创 LC.112. 路徑總和

LC.112. 路徑總和 傳送門 思路:dfsdfsdfs遞歸水題,直接dfsdfsdfs遍歷到每個葉子結點時特判一下是否等於sumsumsum即可。 時間複雜度:O(n+m)O(n+m)O(n+m) /** * Definit

原创 LC.63. 不同路徑 II

LC.63. 不同路徑 II 傳送門 思路:顯然是動態規劃,不能走的位置dp[i][j]=0dp[i][j]=0dp[i][j]=0即可。 否則狀態轉移一下:dp[i][j]=dp[i−1][j]+dp[i][j−1]dp[i][

原创 ABC.173.E - Multiplication 4

ABC.173.E - Multiplication 4 傳送門 題意:求最大子序列乘積。 思路:貪心,先對數組排序,討論kkk的奇偶性,再兩個兩個地取。因爲兩個負數和兩個正數的乘積都是正數。 1.k1.k1.k是奇數,我們先去最

原创 B.Namomo子串(模擬&DP)

B.Namomo子串(模擬&DP) 思路:簡單模擬&dpdpdp。 顯然我們只需每次找到namomonamomonamomo類型的串,然後枚舉循環次數。 假設從長度爲9開始(前兩個momomo不計算)momomo的個數xxx個,顯

原创 LC.44. 通配符匹配(DP)

LC.44. 通配符匹配(DP) 傳送門 思路:dpdpdp。這裏根據題解再梳理一遍。 顯然可以令dp[i][j]dp[i][j]dp[i][j]爲sss前iii個字符和ppp前jjj個字符是否匹配。 首先我們考慮狀態轉移方程。

原创 B. hat

B. hat 傳送門 思路:顯然無論怎麼交換,最終相同概率的個數是不會變等於n−1n-1n−1,即每次交換隻存在兩種概率,而且對於交換(x,y)(x,y)(x,y),就是相當於px,pyp_x,p_ypx​,py​概率交換,所以我