区间赋值?数据随机?
——珂朵莉树!
不愧是 STL,不吸氧 TLE 70pts,吸氧轻松跑进一秒半。
(小声 BB:洛谷提交时「使用 O2 优化」的选项比手动 pragma 要快很多。)
前三个操作都很套路,注意取模。
重点讨论后三个。(其实也不难啊)
复制操作,显然对于 i∈[l1,r1],其在 [l2,r2] 中对应的位置是 i−l1+l2。
所以可以先把 [l1,r1] 里的东西提出来,再删掉 [l2,r2] 里的东西,然后插入。
交换操作,类似地先把两个区间的东西提出来放到 vector 里,然后删除两个区间原来有的再把新的插回去。
翻转操作,对于 i∈[l,r],其反转后所在的位置是 l+r−i,于是类比之前的操作提出来删掉再放回去即可。
代码:
1 |
|