关于[x/y]一些小想法

Posted miracevin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于[x/y]一些小想法相关的知识,希望对你有一定的参考价值。

[x/y],即x除以y下取整

(不会LATEX)

1.对于给定的x,对于所有的1<=y<=x,

[x/y]一共有√x种取值。

证明:

对于y<=√x,y有根号种,所以值最多根号种。对于y>√x,[x/y]<√x, 最多有根号种。

这种思想在根号分块处理的时候也很常见。

 

(必备技能:)

√x求[x/y]的和。

小于√x暴力枚举y。

大于√x,值只有√x中,所以暴力枚举[x/y]的值k,

等于k的区间长度就是,[x/(k-1)]+1 ~ [x/k],可以计算。

[x/y]再乘个什么数,也可以考虑转化成[x/y]的和,再计算。

 

2.数论分块。

不会留坑。

 

3.哪里会用到[x/y]呢?

反演(我不会)

a%b=a-[a/b]*b

可以考虑。尤其在之前出现类似的[a/b]时

在exgcd证明,裴属定理证明也用到过。

毕竟a%b不这么处理怎么办?

 

例题:9.10模拟赛T1mmt

 

4.如果我们要枚举连续的一些x,

假如y是固定的,[x/y]的值会发生变化,

当且仅当,x是y的倍数时,在x位置会比之前大1

所以,还有的启发是:若x|y,那么对于z∈(x~x+y-1),[z/y]=[x/y]

可以枚举y的倍数,在O(up/y)的时间内算出[x/y]的值。

如果y也从1~up,那总复杂度就是O(uplogup)的。

 

如果x不变,y从1~up,那就是上面的"必备技能”处理的了。

 

例题:EOJ 262 润清的烦恼

 

 

5.还有一个什么公式:[x/y/z]=[[x/y]/z]

可以直接根据[x/y]的定义,把x=[x/y]*y+x%y引入余数x%y=q

即可证明。

以上是关于关于[x/y]一些小想法的主要内容,如果未能解决你的问题,请参考以下文章

第四周,关于地图制作的一些想法

关于2D渲染的一些小想法

关于2D渲染的一些小想法

关于代码控制管理的一些想法

关于数据库优化的一些想法

我的 APK 是 118MB ......我只需要一些关于如何减小它的大小的想法吗?