被3整除的子串行(線性dp)

2021-09-25 20:35:40 字數 863 閱讀 7954

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 524288k,其他語言1048576k

64bit io format: %lld

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

答案對1e9+7取模

輸入乙個字串,由數字構成,長度小於等於50
輸出乙個整數
示例1

複製

132
複製

3
示例2

複製

9
複製

1
示例3

複製

333
複製

7
示例4

複製

123456
複製

23
示例5

複製

00
複製

3
n為長度

子任務1: n <= 5

子任務2: n <= 20

子任務3: 無限制

dp[i][j]   前i位數能構成mod3為j的子串行的數目

#includeusing namespace std;

const int mod=1e9+7;

typedef long long ll;

const int n=55;

ll dp[n][3];

char s[n];

int main()

else if(a==1)

else if(a==2)

} printf("%lld",dp[len][0]);

return 0;

}

被3整除的子串行(線性dp)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld 題目描述 給你乙個長度為50的數字串,問你有多少個子序列構成的數字可以被3整除 答案對1e9 7取模 輸入描述 輸入乙個字串,由數字構成,長度小於等於50 輸出描...

dp被3整除的子串行

給你乙個長度為50的數字串,問你有多少個子序列構成的數字可以被3整除 答案對1e9 7取模 輸入乙個字串,由數字構成,長度小於等於50輸出乙個整數示例1 複製132 複製3 示例2複製9 複製1 示例3複製333 複製7 示例4複製123456 複製23 示例5複製00 複製3 n為長度 子任務1 ...

DP 被3整除的子串行

題意 給定乙個數字串,然後求出所有子串行中能被3整除的個數。題解 1 狀態表示 f i j 指的是,以s i 結尾的對3取餘後值為j的集合 2 f i j 方案數 3 集合劃分 每次轉移都是從f 1,2,i 1 0,1,2 1 include2 include3 include4 include5 ...