救救孩子…………2.0——一个TLE

P1865 A % B Problem

把 ```cpp num = 0; for (int j = 0; a[j] <= r; j++) { num += a[j] >= L ? 1 : 0; } printf("%lld\n", num); ``` 改成 ```cpp int k = lower_bound(a + 1, a + x, L) - a; int q = upper_bound(a + 1, a + x, r) - a - 1; printf("%d\n", q - k + 1); ``` (这里可以不开long long)
by C_wcy @ 2023-01-31 14:30:14


``` lower_bound->二分求>=L的位置 upper_bound->二分求<=r的位置(第一个>r的位置减1) ```
by C_wcy @ 2023-01-31 14:42:11


|