旅游归来的一点小感想# PhotoGear - 摄影器材
f*u
1 楼
网上看到下面的解法,代码看上去非常简洁漂亮。看了半天还是没看明白getWays里面
两个for循环怎么就算出所有的解法种数的。哪个大牛能给解释一下,非常感谢!
问题概述:m是基,对于给定数n,求n == x0*m^0 + x1*m^1 + x2*m^2 + ...的所有解
(x0, x1, x2, ...)的总个数。
#define MOD 1000000007
int getWays(int n, int m) {
vector w = vector(n + 1, 0);
for (long long i = 1; i <= n; i *= m) {
w[i] = (w[i] + 1) % MOD;
for (int j = i + 1; j <= n; j++) {
w[j] = (w[j] + w[j - i]) % MOD;
}
}
return w[n];
}
两个for循环怎么就算出所有的解法种数的。哪个大牛能给解释一下,非常感谢!
问题概述:m是基,对于给定数n,求n == x0*m^0 + x1*m^1 + x2*m^2 + ...的所有解
(x0, x1, x2, ...)的总个数。
#define MOD 1000000007
int getWays(int n, int m) {
vector
for (long long i = 1; i <= n; i *= m) {
w[i] = (w[i] + 1) % MOD;
for (int j = i + 1; j <= n; j++) {
w[j] = (w[j] + w[j - i]) % MOD;
}
}
return w[n];
}