bzoj3944中如何运用杜教筛和hash技巧解决哈希问题?

更新于
2026-07-31 02:12:21
17阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1245个文字,预计阅读时间需要5分钟。

bzoj3944中如何运用杜教筛和hash技巧解决哈希问题?

这是一个常规的排序算法,按照上次的做法进行交上去,原因在于使用了map。然后,如果需要不使用map,手写hash是不可行的,所以去网上找解决方案。一个较好的方法是使用存+M。


这个是个常规的杜教筛,按上次的做法交上去会T,原因在于用了map。。。

然后需要想办法不用map,手写hash是不可能手写的,所以去网上找解决姿势。。

一个比较好的姿势是在存

和M(k)的时候可以考虑用a[n/k]这种方式存(其中n是题目要求的)

为什么可以这么存呢。。因为所有的k都是n除以一系列数得到的,而整除的顺序是对答案没有影响的,所以当把这些除数乘起来之后,枚举这些除数的积,就共有1..n这n种情况了。。

而通过预处理前m项和(m取为

),可以将这n个数压成n/m个,即

bzoj3944中如何运用杜教筛和hash技巧解决哈希问题?

个。。然后体验就比map好太多了。。

阅读全文

本文共计1245个文字,预计阅读时间需要5分钟。

bzoj3944中如何运用杜教筛和hash技巧解决哈希问题?

这是一个常规的排序算法,按照上次的做法进行交上去,原因在于使用了map。然后,如果需要不使用map,手写hash是不可行的,所以去网上找解决方案。一个较好的方法是使用存+M。


这个是个常规的杜教筛,按上次的做法交上去会T,原因在于用了map。。。

然后需要想办法不用map,手写hash是不可能手写的,所以去网上找解决姿势。。

一个比较好的姿势是在存

和M(k)的时候可以考虑用a[n/k]这种方式存(其中n是题目要求的)

为什么可以这么存呢。。因为所有的k都是n除以一系列数得到的,而整除的顺序是对答案没有影响的,所以当把这些除数乘起来之后,枚举这些除数的积,就共有1..n这n种情况了。。

而通过预处理前m项和(m取为

),可以将这n个数压成n/m个,即

bzoj3944中如何运用杜教筛和hash技巧解决哈希问题?

个。。然后体验就比map好太多了。。

阅读全文