程序员

BZOJ_3930_选数[Number]

2016-03-13  本文已影响58人  gdjs2

About Problem

Solve

1.设 k∈[l , r],那么会选出 {k,k,k,k...k,k,k} (n 个 k 这样的集合,这很显然是不合法的=.=)
所以一共要去掉 (b-a+1) 个方案。
2.k*2*i 是 ki 的倍数,k*4*i 也是 ki 的倍数,但这两个的 gcd 明显不是 ki 而是 2ki,所以显而易见要把gcd为 2ki,3ki,4ki,5ki ... 的余数给去掉
在去重的过程中不会出现第二种情况包含第一种情况,因为 gcd 为 2ki 的方案中也不会包含重复出现的形如 {x,x,x...,x,x}(n 个 x,且 2ki|x ),所以第二种情况去掉的只是新添加的情况[不知道你们看不看得懂,,,反正我是看不懂自己写的,反正就是情况2和情况1不会有交集吧]

综上:


Windows下的公式丑,不要介意><

Maxn可以任选(当然如果你有闲心推一下上界的话也不错,记得在评论里告诉我ZZZ,我很懒,所以我是蒟蒻)
各位大神 OOOOrrrzz

代码:Github传送门 嗖~

当然这道题的正解貌似是莫比乌斯反演,然而我还懒得学=.=有时间再看一下吧,在友链中贴出一个我认为写得好的的Blog,有兴趣的可以看一下。

友链:

思路来源:http://www.cnblogs.com/tuigou/p/4620242.html
莫比乌斯反演:http://blog.csdn.net/popoqqq/article/details/44917831
犇OOOOrrrzz

----------------------------------------------- gdjs2 --------------
--------------------------------------------- 2016.3.13 ------------

上一篇 下一篇

猜你喜欢

热点阅读