https://codeforces.com/gym/101911/problem/L
题意
在二维坐标系中给出两个直线 y = a, y = b。在这两条直线上分别有n个和m个传感器,可以任意选两个传感器A,B,发射一束A->B的激光,这个激光遇到直线就会反射,问最多会经过多少个传感器。
1<=n,m<=3e5
题解
先解决一个问题,已知一条射线,如何快速求出经过的传感器个数?
对于上下直线分开讨论。
- 假设如图所示,从下往上的射线在下直线的跨度是 c = ( x b − x a ) ∗ 2 c = (x_b-x_a)*2 c=(xb−xa)∗2,对于每个传感器令其坐标为 x u x_u xu,只需 满足 x u ≡ x a m o d c x_u \equiv x_a \ mod\ c xu