T1.oj6785你还没有卸载吗(game)
先得出式子:
\[B_1+\lfloor\dfrac{A_1}{x}\rfloor = B_2+\lfloor \dfrac{A_2}{x}\rfloor \]然后把 \(B_2\) 移过去,把 \(\lfloor\dfrac{A_1}{x}\rfloor\) 移过来就可以得到:
\[B_1 - B_2 = \lfloor \dfrac{A_2}{x}\rfloor - \lfloor\dfrac{A_1}{x}\rfloor \]然后再用类似整除分块的想法搞一下,这样就可以求出 \(x\) 的种数了。
代码:
void solve()
{
int A1,B1,A2,B2,n,ans = 0;
cin >> A1 >> B1 >> A2 >> B2 >> n;
for(int l = 1,r = 1;l <= n;l = r + 1,r = min({n,l > A1 ? n : A1 / (A1 / l),l > A2 ? n : A2 / (A2 / l)}))
{
if(A2 / l - A1 / l == B1 - B2)
{
ans += r - l + 1;
}
}
cout << ans << '\n';
}
标签:lfloor,dfrac,rfloor,A1,Record,A2,B1,Math
From: https://www.cnblogs.com/Carousel/p/18026277