牛客網 21302 被3整除的子串行

2021-10-04 12:41:51 字數 932 閱讀 3506

題目描述:

給你乙個長度為50的數字串,問你有多少個子序列構成的數字可以被3整除

答案對1e9+7取模

輸入描述:

輸入乙個字串,由數字構成,長度小於等於50

輸出描述:

輸出乙個整數

輸入:

132931

題意:

題目描述

題解

因為是子串行,所以可以不連續,因此需要儲存每個區間上餘數為0,1,2的數目 用dp[i][k] 表示從0到i區間上,餘數為k的數目.

**:

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int maxn =55;

const

int mod =

1e9+7;

char s[maxn]

;ll dp[maxn][5

];intmain()

for(

int i =

1; i < l; i ++

)else

if(t %3==

1)else

for(

int j =

0; j <

3; j ++)}

printf

("%lld\n"

,dp[l -1]

[0])

;}}

牛客練習題21302 被3整除的子串行

給你乙個長度為50的數字串,問你有多少個子序列構成的數字可以被3整除 答案對1e9 7取模 輸入乙個字串,由數字構成,長度小於等於50輸出乙個整數對乙個數字字串取餘有 123456789 m 1 10 2 m 10 3 m 10 4 m.定義dp pos 0 1 mod 表示第 pos 位取 不取時...

牛客網 被3整除

小q得到乙個神奇的數列 1,12,123,12345678910,1234567891011 並且小q對於能否被3整除這個性質很感興趣。小q現在希望你能幫他計算一下從數列的第l個到第r個 包含端點 有多少個數可以被3整除。import sys while true x y sys.stdin.rea...

牛客 被3整除的子串行(DP)

示例1 輸入複製 132輸出複製3 示例2輸入複製9 輸出複製 1示例3 輸入複製 333輸出複製7 示例4輸入 複製123456 輸出複製 23示例5 輸入複製 00輸出複製3 被三整除的數的乙個性質是所有數字的數加起來是3的倍數。列舉三個狀態,模3等於0,模3等於1和模3等於2,那麼考慮第i個位...