最后的ans可能是负数,要(ans%md+md)%md,这可能是因为mu函数某段区间和为负数,累加计算上去致使ans也成了负数再加上后续计算一直没将ans变正导致的。 分块的j应当是
j = min(hk / (hk / i), lk / (lk / i));
而不是
j = min(hk / (hk / i), hk / (lk / i));
其中lk=roundup(l,k)-1,hk=rounddown(h,k),亲测这会WA6、9