数论
neofung
这个作者很懒,什么都没留下…
展开
-
ZOJ1005 POJ1606 Jugs 数论法
这个其实可以用数学方法证明其中的规律的,对于A,B,N,只要N能被A或B除尽,或者N能被A和B的最大公约数除尽,一直装一直倒就可以了,有时间我会证明一下的。当然了,你们也可以用广度优先搜索的方法,可以参考一下这个博客。好了,上代码。/***********************原创 2011-07-16 17:24:44 · 1100 阅读 · 0 评论 -
POJ2309 BST
水题,找规律。可以看到每一层的节点都可以被同一层最左边的节点整除,而最左边的节点都是2的幂。找到规律,然后看一下这个节点和左右最底的节点的差均为这个节点同一层的最左节点减一(好绕口。。。)。/**************************************原创 2011-09-14 19:33:19 · 1135 阅读 · 0 评论 -
POJ1147 Binary codes
好题, 著名的BWT算法. 我们先看给定的例子 0001100110011001000111000题目的输入是最后一列, 我们可以看到, 第一列必然是按照00..11, 这种样式排列的, 1的个数是输入的1的个数. 这样我们就有了第一列了.那如何知道第一行第二个字符呢? 我们如果把前面的3行的第一个零移到最后面, 新的3行仍然按照字典序排列. 这就是解题的关键了.原创 2012-03-07 19:21:46 · 1551 阅读 · 0 评论 -
HDU3003 Pupu,快速幂取模
快速幂取模就是在O(logn)内求出a^n mod b的值。算法的原理是(a*b) mod c=(a mod c)*(b mod c)mod c/******************************************************************************* # Author : Neo Fung # Email : neosfung@原创 2012-07-05 18:54:37 · 1527 阅读 · 0 评论 -
POJ2478 Farey Sequence,欧拉函数
挺不错的数论题。给定一个数n,求在[1,n]这个范围内两两互质的组合数。则问题可以转化为给定一个数n,比n小且与n互质的数的个数。这个就是典型的欧拉函数问题了。关于欧拉函数可以看这里:http://blog.csdn.net/leolin_/article/details/6642096 。在这里需要利用两个性质。第一,大于1的质数x的欧拉函数值为x-1,1的欧拉函数值为1。第原创 2012-07-17 18:54:30 · 3424 阅读 · 0 评论