萌新求问
查看原帖
萌新求问
292300
Kobe303楼主2022/3/29 14:34

为什么这道题不能将 limit\text{limit} 一维计入数组?

而是要这样写

ll dfs(bool mx, int len, int Mod, int mul) {
	if (len == 0) return mul % Mod == 0;
	if (!mx && ~f[len][mul][a[Mod]]) return f[len][mul][a[Mod]];
	ll res = 0;
	for (int i = 0; i < 10; ++i) {
		if (mx && i > num[len]) break;
		res += dfs(mx && i == num[len], len - 1, i != 0 ? i * Mod / __gcd(i, Mod) : Mod, (mul * 10 + i) % mod);
	}
	if (!mx) return f[len][mul][a[Mod]] = res;
	else return res;
}
2022/3/29 14:34
加载中...