cf F. Kazaee(离散化随机hashing+树状数组)

Posted yeah17981

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf F. Kazaee(离散化随机hashing+树状数组)相关的知识,希望对你有一定的参考价值。

来点题外话:我创建这个专栏的时候不会想到我会有一段时间每天都在打代码,cf出勤率从来没这么高过……

由于最近写题解的部分转化成了给学弟们回答问题,特别是在cf后,因此没怎么更新,所以小更一波~

​​​​​ Problem - F - Codeforces

群里看到的,觉得这题非常有趣,于是来点更新

题目大意:给一个初始数组,q个操作

1 i x:ai换成x

2 l r k:查询l到r内是否存在每种数的个数都是k的倍数

题解:如果符合条件的话,则区间l-r的和是k的倍数,当数被离散化后此结论同样成立。

如果区间和为k的倍数的时候,有可能是对的也可能是错的

但是如果不为k的话,此时一定是错误的

我们想办法排除掉本来是错误但是被我们判定为正确的情况的情况

如果k为2的话,如果本来答案是错误的,此时有奇数和偶数两种情况,概率相同,偶数会被判定为对的,因此错误概率为1/2

k大于2之后错误概率减少

我们重复哈希t次,直到错误概率约等于0,概率约为1/2^t,t取30(我不知道为啥,但是这个概率看起来脸不黑应该是能过的)

单纯的单点修改+区间查询=树状数组

好啦结束

代码还没写,我研究下随机化hashing

以上是关于cf F. Kazaee(离散化随机hashing+树状数组)的主要内容,如果未能解决你的问题,请参考以下文章

CF-1328 F. Make k Equal

Codeforces Round #624 F. Moving Points 离散化 + 树状数组

[CF1216C] White Sheet - 离散化,模拟

cf1042d 树状数组逆序对+离散化

子序列 NYOJ (尺取法+队列+hash) (尺取法+离散化)

RF的优缺点