用DP转移,复杂度为O(300N)
用$dp[i][j]$ 代表 末尾是第 i 个数字(i从1开始)对300取余为j的个数。
假设我们已经求得$dp[i][j]$
那么用一个循环就能得到$dp[i + 1][j]$
1 | for(int j = 0; j < 300; ++j) |
1 | #include <cstdio> |
云腾致雨,露结为霜
用DP转移,复杂度为O(300N)
用$dp[i][j]$ 代表 末尾是第 i 个数字(i从1开始)对300取余为j的个数。
假设我们已经求得$dp[i][j]$
那么用一个循环就能得到$dp[i + 1][j]$
1 | for(int j = 0; j < 300; ++j) |
1 | #include <cstdio> |