給你乙個長度為50的數字串,問你有多少個子序列構成的數字可以被3整除
答案對1e9+7取模
輸入乙個字串,由數字構成,長度小於等於50
輸出乙個整數
132931
因為被3取餘只可能是 0 1 2
所以每次提取乙個數字把它現有的可能和之前的可能性相結合就可以得到每次的被3整除的總數。
dp [ i ] [ j ] += ( dp [ i - 1 ] [ j ] + dp [ i - 1 ] [ ( j + 3 - x ) % 3 ] ) % mod ; // 本身 之前不加 之前加本
#include
using namespace std;
string t;
int dp[55]
[3];
int x;
const
int mod=
1e9+7;
intmain()
} cout
-1][
0]%mod<}return0;
}
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 ...
被3整除的子串行(線性dp)
時間限制 c c 1秒,其他語言2秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld 題目描述 給你乙個長度為50的數字串,問你有多少個子序列構成的數字可以被3整除 答案對1e9 7取模 輸入描述 輸入乙個字串,由數字構成,長度小於等於50 輸出描...