题解:P17239 『STA - R10』雨落玫瑰

· · 题解

看到这个题的一瞬间就知道这是类欧题,想了一会发现是板子。

直接做不好做,尝试简单分析一下。

我们考虑 \frac{a}{c}\frac{d}{f} 的关系会影响结果,具体如果差距较大,在 i 很大的时候变为一定贡献或者不贡献。

根据这个,考虑什么时候成立。

\frac{ai+b}{c}\le\frac{di+e}{f} 的时候,下取整后也一定是对的,于是我们必然要贡献。满足这个条件形如一段前缀或者后缀,算完之后类欧即可。

\frac{ai+b}{c}>\frac{di+e}{f}+1 的时候,显然下取整救不动,所以不贡献。

\frac{di+e}{f}\le\frac{ai+b}{c}\le\frac{di+e}{f}+1,显然下取整后二者只相差一,而且 i 形如一个区间。此刻我们可以做很多事情。

x=\lfloor \frac{ai+b}{c}\rfloory=\lfloor \frac{di+e}{f}\rfloor

我们有 y\le x\le y+1,我们希望计算对于 x=y 时,x 的和。

我们考虑计算多少个 x=y,就是总数减去多少个 x=y+1,也就是总数减去 \sum x-\sum y

我们此时多了个 x,于是考虑在这个式子也多个 x,变为 \sum x^2-\sum y^2

x=y 时,x^2-y^2=0

否则 x^2-y^2=2y+1

我们得到符合条件的 $2y+1$ 之和,减去满足条件的个数,除以二即可得到满足条件的 $y$ 之和。 我们减掉这部分,即可算出 $x=y$ 的 $y$ 也就是 $x$ 之和。 于是我们算完了,注意特判 $\frac{a}{c}=\frac{d}{f}$。