专栏文章
Storm-数论分块
算法·理论参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqc6rxl
- 此快照首次捕获于
- 2025/12/04 02:24 3 个月前
- 此快照最后确认于
- 2025/12/04 02:24 3 个月前
Math-数论分块
- 数论分块又称整数分块,只要体现于思想,很少以模板本身考。
整数分块顾名思义,将整数如分块思想一样分成很多块,但如何分了?其实很显然,我们设此整数为 ,则可以分为 这些部分。但其时间复杂都并无改变。举几个例子可以发现一些微妙的规律,越往后面相同的数且连续的越来越多,此时我们尝试将相同的数分为一块。我们可以定义一个 为此时分块左端点,这时有小孩哥就要问了这玩意儿咋分块啊!即使以相同为分块的基本规则但同上所述时间复杂度无任何改变。其实很简单的一个式子即可我们定此时的值为 ,那如何找到分块右端点 呢? 此时用 就可以完美解决了!思考一下why?此时的值为,由于前文提到过将有相同 的分在一起为一个块,所以如果此时除以的数为则有显而易见,则一定是符合条件且最大的位置则为右端点,此时既然已经将一个区块干掉,则往下一个块搜!那如果求权值呢?这时自己慢慢推式子吧!毕竟有一块相等的特性...
CPPfor(int l=1;l<=x;l++){
int k=x/l,r=x/k;
//Code value add 加权
l=r;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...