Chtholly の 复活

P2391 白雪皑皑

hacked by $p=q=1$.
by 年年有年 @ 2021-08-13 08:52:37


只有区间赋值那ODT本来就是对的吧
by 142857cs @ 2021-08-13 08:56:09


@[142857cs](/user/35760) 主要是 $O(n\log n)$ 和 $O(n\log \log n)$ 的区别
by 年年有年 @ 2021-08-13 08:56:48


????
by Chtholly_L @ 2021-08-13 09:00:02


那也就跑700ms,不要紧,如果$p=q=1$那也就退化成$O(nlogn)$
by peterwuyihong @ 2021-08-13 09:08:16


@[peterwuyihong](/user/100325) 我把他交上去跑了 1.07s /jy
by 年年有年 @ 2021-08-13 09:13:40


@[年年有年](/user/377973) 可能是上帝给予了你$114.514$的常数防止你吊打洛谷((
by peterwuyihong @ 2021-08-13 09:26:33


$10^6$ 的范围哪怕退化到 $O(n\log n)$ 只要常数不太大就必定能过吧。
by YeKai @ 2021-08-13 09:49:41


其实这也是题解中一堆时光倒流能过的重要原因。
by YeKai @ 2021-08-13 09:51:37


```cpp for(uint i=(n<m)?m-n:1;i<=m;i++)odt.assign(std::min((i*p+q)%n,(i*q+p)%n),std::max((i*p+q)%n,(i*q+p)%n)+1,i); ``` 还有,这么写就好了吧,毕竟只有最后 $n$ 次操作有意义。
by YeKai @ 2021-08-13 10:19:25


| 下一页