摘要: 2.8找符合条件的整数问题描述:给定一个正整数N,求一个最小正整数M(M>1),使得N*M的十进制表示形式里只含有1和0.最直接了当的方法。当然就是对M无限穷举下去。书上提供了一个逆向考虑的方法。其实重点是思想。我们可以穷举N*M。即由1和0构成的串。相比穷举M而言。N*M的数量级小得多了多!。而且... 阅读全文
posted @ 2015-05-15 20:38 Milkor 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 注意这里讲的是斯特林数而非斯特林公式。斯特林数分两类:第一类斯特林数 和 第二类斯特林数。 分别记为。首先描述第二类斯特林数。描述为:将一个有n件物品的集合划分成k个非空子集的方法数。比如集合{1,2,3,4}有以下划分:{1,2,3}U{4} {1,2,4}U{3} {1,3,4}U{2} {2,... 阅读全文
posted @ 2015-05-11 20:01 Milkor 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 主要原理:算术基本定理对一个数n进行唯一分解。有一下式子:那么约数的个数就是:(1+a1)*(1+a2)*(1+a3)*(1+a4)*(1+a5)*(1+a6)...*(1+ak).那么约数和就是:这个式子的求解。可以根据等比求和公式来化简计算这个式子往往利用快速幂加计算逆元。具体不介绍。而获得其各... 阅读全文
posted @ 2015-05-06 21:44 Milkor 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 一开始看 这里 这个文章博主写得很好。当举容斥定理的所谓 奇数为负 偶数为正的时候。我直接就认为是 a*b 了。实际上是lcm(a,b)。由于博文中的因子都是互素的(素数之间)。所以lcm(a,b) = a*b。用队列数组做的。比较简单干净点。原理就不解释了吧。容斥定理。可以看相关论文。#inclu... 阅读全文
posted @ 2015-05-06 20:03 Milkor 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 先拜大牛。感谢贾志鹏严谨的思维。以及简单清晰的论文描述。 一定要结合论文看。我只是提出我觉得关键的部分。论文在网上随处可见。贾志鹏线性筛。 开头两种线性筛的比较。 一种是传统的线性筛。时间复杂度为N*log(log(N))。 另外一种是优化了合数的筛法。文中称作Euler线性筛。 其优化的地方。 举 阅读全文
posted @ 2015-05-04 21:02 Milkor 阅读(6306) 评论(15) 推荐(8) 编辑
摘要: 欧拉函数:φ(n)表示1~n中和n互素的数目要处理出欧拉函数。先证明φ(p)=p-1.(p为素数)根据互素的概念。两个数的公约数只有1,那么这两个数互素。再根据素数的定义。公约数除了本身以外只有1的数为素数。所以得证φ(p) = p-1.再证明欧拉函数为不完全积性函数。φ(m1*m2) =φ(m1)... 阅读全文
posted @ 2015-05-02 03:02 Milkor 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 在讲这个函数之前。最好先了解欧拉函数。我们用 \ 记为整除。 记得小学的时候整除和整除以的概念么?别混淆。 2整除4 记作 2\4。欧拉函数用来表示。那么根据法里级数的展开(这个感觉和ACM关系不大就先不介绍了。大概讲的就是构造所有最简分数的一种树。而法里级数n定义分母=2)推广到 m:(m为任意实... 阅读全文
posted @ 2015-04-30 01:03 Milkor 阅读(13869) 评论(4) 推荐(6) 编辑
摘要: nows nowe 分别代表 正数范围上的 nowe代表负数范围上的。nexts nexte 同理。也就是用新的nowe nexte 存储负数的结果即可。扩展到负数域。这样就可以做减法的母函数的题目啦。注意这个时候物品可以是负数的。负数的话就存在nowe nexte上即可。#include#incl... 阅读全文
posted @ 2015-04-22 02:37 Milkor 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 众所周知逆元是由扩展欧几里得算法得来的。可是经由扩展欧几里德算法算出来的解。只是一个特解。我们实际生活中往往需要这些解集中的一个最小正解。又或者有某个式子来描绘整个解集的状态。在这里我们有一个这样的式子。对于方程nn'+mm'=t已知n',m'为该方程的一组特解。那么解集组为:(n'+m/d,m'-... 阅读全文
posted @ 2015-04-22 01:05 Milkor 阅读(610) 评论(0) 推荐(0) 编辑
摘要: 该算法的效率并不高。但是却提供了一个很好的思路。如何让一个序列在最小交换次数下实现有序。Cycle Sort 翻译成中文是 圈排序。这个圈在于需要交换的数据形成圈。具体一点:如:Array 4 3 2 5 5 6 要处理的数组Result 2 3 4 5 5 6 结果pos 0 1 2 3 4 ... 阅读全文
posted @ 2015-04-20 00:12 Milkor 阅读(2848) 评论(0) 推荐(0) 编辑