HDU X mod f x 題解(數字dp)

2021-10-06 15:33:57 字數 972 閱讀 6801

在1<=l<=r<=1e9內,找出有多少個數mod(自己每一位數和)為0

顯然是數字dp,但是比較巧妙的是要,列舉mod,還有這個卡空間,不能直接return dp[pos][mod][digsum][digmod][limit],就是不要你乘以兩倍。。。可以令 dp[pos][mod][digsum][digmod]都為limit==0的時候就行了

注意要memset(dp,-1,sizeof(dp)),因為dp可能是等於0,要不然就會tle

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

int t,n,cnt,ans,dig[20]

,dp[11]

[82][

82][82

];intdfs

(int pos,

int mod,

int digsum,

int digmod,

bool limit)if(

!limit&&dp[pos]

[mod]

[digsum]

[digmod]!=-

1)int ans=0;

for(

int i=

0;i<=

9;i++)if

(limit==0)

return ans;

}int

work

(int x)

for(

int i=

1;i<=

81;i++

)return ans;

}int

main()

return0;

}

HDU3555 Bomb 題解 數字DP

題目大意 求 1,n 範圍內有多少數包含 49 解題思路 這個問題我們可以分兩種解法來考慮 第一種是求不包含 49 的數的數量,用後減一下 另一種就是直接求包含 49 的數的數量。這種方法我們先通過數字dp求出 0,n 區間範圍內有多少數不包含 49 假設數量為 x 然後可以得到答案為 n 1 x ...

題解 數字遊戲

the game is on.sherlock holmes 問題描述 遊戲是這樣的 在你面前有一圈整數 一共n個 你要按順序將其分為m個部分,各部分內的數字相加,相加所得的m個結果對10取模後再相乘,最終得到乙個數k。遊戲的要求是使你所得的k最大或者最小。例如,對於下面這圈數字 n 4,m 2 最...

AHOI2009 同類分布 題解(數字DP)

題目大意 求 l,r 中各位數之和能被該數整除的數的個數。0 leq l leq r leq 10 顯然數字dp。搜尋時記錄 pos 表示當前位置,sum 表示各位數字之和,st 表示原數,limit 表示最高位限制。如果有時間我會寫一篇部落格學習數字dp,希望不要咕咕 轉移自然是 dfs pos ...