1 条题解
-
0
自动搬运
来自洛谷,原作者为

noip
对你说再见搬运于
2025-08-24 21:51:29,当前版本为作者最后更新于2017-03-19 22:06:39,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文

考虑对于减操作,用bitset来维护每个数是否出现过
这样就可以O( c / 64 )的查询区间是否有两个数差为x了,即得到区间的bitset a,( a & ( a << x ) ).count()
加操作同理,维护一个反的bitset即可
乘操作直接暴力枚举小的因数,是O( sqrt( n ) )的
用膜队维护区间的bitset,总复杂度为O( m( sqrt( n ) + c / 64 ) )
其实除也可以做的。。。只是似乎有点麻烦
- 1
信息
- ID
- 2691
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者