DP 練習(xí)(持續(xù)更新)

1.??https://atcoder.jp/contests/abc135/tasks/abc135_d??

題意 : 給一個只包含 '?' 和數(shù)字'0'~'9'的字符串,? 可以把每個'?' 轉(zhuǎn)換成 0 ~ 9 中的任意一個數(shù)字,求問整個字符串組成的數(shù)字中對13取膜后的余數(shù)為5的個數(shù)是多少. 由于答案很大,因此答案對1e9+7取模.

思路 : dp[i][j] 用前i個字符組成的數(shù)字對13取余的結(jié)果為j的個數(shù)是多少。。對13取余只有0~12這12種情況。如果當(dāng)前字符是一個問號,那么我們從0~9對當(dāng)前位置的數(shù)字進行枚舉,然后我們發(fā)現(xiàn),假設(shè)枚舉當(dāng)前位之前的數(shù)字是a, 當(dāng)前數(shù)字用b代替,那么有如下的式子, (10 * a + b) % 13 =? (10 * (a % 13) + b % 13), 而 a % 13 是當(dāng)前位之前的所有字符組成的數(shù)字對13取余得到的結(jié)果,因此也就可以根據(jù)i-1, 和i對13取余的式子很容易看出來怎么寫轉(zhuǎn)移方程了。邊界條件是dp[0][0] = 1。最后我們需要的答案是dp[n][5]即為所求.。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容