leetcode 902 數字dp 不包含0

2022-06-02 09:30:14 字數 448 閱讀 6141

複習了一下數字dp

肯定不包含0,但是通常數字dp最後計算的結果較小的是包含前導0的,只是沒顯示出來而已,所以這題需要前導0,但是非前導0是不需要算進去的,因此,加個是否是前導0的狀態即可

class

solution

if(i==0&&(!zero||(zero&&p==0))) continue

; sum+=dfs(p-1,e&&i==u,zero&&i==0

); }

return e||zero?sum:dp[p]=sum;

}int solve(int

n)

return dfs(len-1,1,1

); }

int atmostngivendigitset(vector& d, int

n) };

ACwing 902最短編輯距離 (線性dp

給出兩個字串a,b,三種操作 刪除a中某個字元 a中插入乙個字元 修改a中某個字元 問將a變成b最小的操作步數。dp i j 表示將a 1 i 變成b 1 j 的最小步數 狀態轉移 對於每個a i 有三種操作 刪除a i dp i j dp i 1 j 1a i 後面插入b j dp i j dp ...

acwing 902 最短編輯距離 (線性DP)

對於兩個字串,我們一般用 f i j 來表示第乙個串的前 i 個字母和第二個串的前 j 個字母 然後我們劃分集合,分三種操作。刪除操作 f i j 我們需要刪除a字串的第i 那麼就需要確保a 的第前 i 1 個字母和b的前 j 個字母相同 那麼轉移方程就是 f i 1 j 1 操作步驟 增加操作 f...

ACwing 902最短編輯距離 (線性dp

給出兩個字串a,b,三種操作 刪除a中某個字元 a中插入乙個字元 修改a中某個字元 問將a變成b最小的操作步數。dp i j 表示將a 1 i 變成b 1 j 的最小步數 狀態轉移 對於每個a i 有三種操作 刪除a i dp i j dp i 1 j 1 a i 後面插入b j dp i j dp...