計數DP之數字

2022-01-30 11:37:41 字數 865 閱讀 7518

* 乙個數字被稱為好數字當他滿足下列條件:

* 它有 2∗n個數字,n 是正整數(允許有前導 0)。

* 構成它的每個數字都在給定的數字集合 s中。

* 它前 n位之和與後 n 位之和相等或者它奇數字之和與偶數字之和相等。

第一行乙個數 n。接下來乙個長度不超過 10的字串,表示給定的數字集合(不存在重複的數字)。
一行,乙個整數表示合法的好數字的個數 mod 999983。
2

0987654321

1240
#include#define int long long

using namespace std;

const int maxn=1e3+5,mod=999983;

int dp[maxn][9*maxn];

int n,a[11];

signed main()

dp[0][0]=1;

for(int i=1;i<=n;i++)

}} }

int ans=0;

for(int i=0;i<=9*n;i++)

int len1=(n+1)/2,len2=n/2;

int ans1=0,ans2=0;

for(int i=0;i<=9*len1;i++)

for(int i=0;i<=9*len2;i++)

ans=(ans-ans1*ans2%mod+mod)%mod;

printf("%lld\n",ans);

}

count 數字計數 (數字dp)

給定兩個正整數a和b,求在 a,b 中的所有整數中,每個數碼 digit 各出現了多少次。input 輸入檔案中僅包含一行兩個整數a b,含義如上所述。output 輸出檔案中包含一行10個整數,分別表示0 9在 a,b 中出現了多少次。sample input 1 99 sample output...

計數問題(數字dp)

給定兩個整數 a 和 b,求 a 和 b 之間的所有數字中0 9的出現次數。例如,a 1024,b 1032,則 a 和 b 之間共有9個數如下 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出現10次,1 出現10次,2 出現7次,3 出現3次...

數字DP 計數問題

題目鏈結 第一次做真的很難,總之十分耗費時間。include include include using namespace std const int n 10 get前面字首部分的數值,即前面字首總方案數 intget vector int num,int l,int r 字尾有幾位就是十的幾次...