D简单版本的做法(二分):因为0的个数只会越乘越多,故可用前缀积维护,满足二分性,每次枚举左端点,二分右端点,即可计算出答案。 using namespace std; using ll = long long; const int N = 2e5 + 5; ll a[N]; ll T[N]; int n, k; ll check(ll q) { // 计算后导零 ll res = 0; while (q && q % 10 == 0) { res += 1; q /= 10; } return res; } void solve() { ...