数论-组合数学
文章平均质量分 74
Flynn_curry
这个作者很懒,什么都没留下…
展开
-
poj1061 青蛙的约会(扩展欧几里得)
http://poj.org/problem?id=1061题意:中文题,求青蛙跳多少次才可以碰面,碰面即约会。思路:数论第一题。根据题意很容易得出这个周期问题的条件:(x+mt)-(y+nt) = kl。其中t代表跳了多少次,k代表相差多少圈,这两个都是未知数。变形一下得到(n-m)t+lk = x-y,这就相当于解ax+by = c的式子了。其中a = n-m,b = l,原创 2016-11-20 17:58:26 · 329 阅读 · 0 评论 -
hdu2841 Visible Trees(容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=2841题意:有一个n*m的格点矩形,除坐标轴上都有格点,求原点可以看见的格点个数。思路:刚开始以为是法雷级数,咋一看不是正方形。这题和hdu1695有异曲同工之妙,主要说下自己理解的欧拉与容斥的区别:计算集合之间互质的数对时,欧拉是1~n-1型,容斥是区间型。打个比方,两个集合[1,b原创 2017-02-26 14:52:57 · 586 阅读 · 0 评论 -
zoj2562 More Divisors && CF27E. Number With The Given Amount Of Divisors(反素数)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1562题意:求n以内因子最多的那个数。思路:范围非常大,不能用普通的求约数个数方法。反素数,就是小于这个数的所有数因子都没他多,那么就转变成求1~n之间的最大反素数。反素数的写法,自己没想出来,看的这位大佬和这位。除此之外,还有一个重要性质:原创 2017-02-27 16:29:25 · 414 阅读 · 0 评论 -
hdu3501 Calculation 2(欧拉函数)
http://acm.hdu.edu.cn/showproblem.php?pid=3501题意:求小于n中与n不互为质数的正整数之和。思路:主要就是欧拉函数的入门。看这个吧:欧拉入门欧拉函数是为了求小于或等于n的数中与n互质的数的数目。直接不分所以然就给了个这样的公式:φ(n)=n*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)…..(原创 2016-11-22 08:57:19 · 400 阅读 · 0 评论 -
hdu1286 找新朋友(欧拉函数||容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=1286题意:求与n互质的数的个数。首先是尽人皆知的裸欧拉函数:#include #include using namespace std;typedef long long ll;ll euler(ll n){ ll ans = n; for(int i原创 2016-11-24 20:48:55 · 413 阅读 · 0 评论 -
hdu4542 小明系列故事——未知剩余系(反素数打表待改!!不会!!)
http://acm.hdu.edu.cn/showproblem.php?pid=4542这道题时间卡的也太紧了换着打了几种表都不行,看了下别人的表打的都莫名其妙,里面的剪枝也被弄懂,直接绕晕了。。用别人的代码改了改,改天在看这题。。#include #include #include using namespace std;typedef long lo原创 2017-02-27 21:47:30 · 435 阅读 · 0 评论 -
poj1284 Primitive Roots(原根,欧拉函数)
http://poj.org/problem?id=1284题意:求一个奇素数的原根个数。思路:原根定义:here。感觉和费马小定理有点像,定义里都说“归根到底就是g^(P-1) = 1 (mod P)当且仅当指数为P-1的时候成立.(这里P是素数).”。说白了就是用了一个定理:一个数n有原根,那么他有phi(phi(n))个模n不同余的原根(n是否素数都可用)。原创 2017-02-28 21:51:56 · 628 阅读 · 0 评论 -
hdu3625 Examining the Rooms && hdu4372 Count the Buildings(第一类斯特林数)
先吐槽下,这两道题的数据很坑。。参考:Acdream,之所以这里写出来只是为了让自己巩固,没别的意思。。首先解释第一类斯特灵数:将p个物体排成k个非空循环排列的方法数。s(p,0)=0 ,p>=1 ;s(p,p)=1 ,p>=0。递推式:s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1) ,1递推式解释:若p-1个物体已经排成了k个循环,那么第p个物体可原创 2017-03-01 20:32:36 · 489 阅读 · 0 评论 -
hdu2512 一卡通大冒险(第二类斯特林数)
http://acm.hdu.edu.cn/showproblem.php?pid=2512题意:n个一卡通可以放到任意书里,每个书里的一卡通是无序的,求问有多少种放法。思路:已知第一类斯特灵数:将p个物体排成k个非空循环排列的方法数。s(p,0)=0 ,p>=1 ;s(p,p)=1 ,p>=0。递推式:s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1)原创 2017-03-01 21:36:55 · 903 阅读 · 0 评论 -
hdu1695 GCD(欧拉函数+容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=1695题意:求[a,b]和[c,d]区间内各取一个数,公约数为k的数对有多少。思路:感觉这题比较坑。。首先[1,b]和[1,d]区间上限各除以k,问题就变成了[1,b/k]和[1,d/k]内各取一个数,有多少对数互质。我们固定[1,b]为小区间,[1,d]为大区间,这样[1,b]区间内两个原创 2017-02-25 20:05:35 · 439 阅读 · 0 评论 -
hdu4135 Co-prime(容斥原理两种写法)
http://acm.hdu.edu.cn/showproblem.php?pid=4135题意:求[a,b]范围内与n互质的数的个数。思路:这题数据貌似很弱,用欧拉函数算下就知道10^9的质因数的个数最大约等于10^9,这里开大了显然爆内存,1005居然也能过。。和hdu1286类似,不同点在于那题是1~n-1内与集合不互质的数,而这里是[a,b]内,而且a和b的原创 2017-02-19 21:45:51 · 474 阅读 · 0 评论 -
hdu2669 Romantic(扩展欧几里得)
http://acm.hdu.edu.cn/showproblem.php?pid=2669题意:求ax+by=1的最小整数解,其中a为非负数。思路:确保x是非负数,在a、b、c不变的情况下,若x是负数,只有增大a而减小b。而x和y分别有系数a和b,那么中间用ab作为媒介,ax+ab+by-ab = a(x+b)+b(y-a),每次对x和y操作直到满足条件即可。#i原创 2016-11-20 22:09:30 · 461 阅读 · 0 评论 -
poj1006 Biorhythms(中国剩余定理)
http://poj.org/problem?id=1006题意:给你三个属性顶峰的开始日期,今天的日期,以及三个周期大小,求下一次三个顶峰均出现时的最早时间。思路:首先ym下这位大牛,说的相当清晰。接着膜拜下孙子,古人的智慧和创造力老实说真的是我触不能及的啊。。可能是现在对数学还不太敏感,这定理大约花了一天才理解透彻。下面说的基本都是那位大牛的,添加了些自己的原创 2017-02-19 21:50:45 · 442 阅读 · 0 评论 -
hdu2817 A sequence of numbers && hdu1420 Prepared for New Acmer(快速幂取模)
http://acm.hdu.edu.cn/showproblem.php?pid=2817题意:给出一个数列的前三项,求这个数列的第k项。注意体重说过arithmetic or geometric sequences,只可能是等差等比数列中的一种。首先根据前三项判断是等差还是等比,若等差则直接根据通项公式得出,等比的话数字太大,要用快速幂快速幂取模,一种神奇的位运原创 2016-04-12 09:35:39 · 506 阅读 · 0 评论 -
uva10006 Carmichael Numbers(卡迈克尔数+素数打表)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=12&page=show_problem&problem=947题意:判断一个数是否是卡迈克尔数。这题做的我真是峰回路转啊。。首先本来是想看着《挑战》复习下快速幂,结果这题根本用不到。刚开始看到x^n≡x(原创 2017-02-20 21:43:25 · 3254 阅读 · 2 评论 -
poj2478 Farey Sequence(法雷级数+欧拉函数式素数筛)
http://poj.org/problem?id=2478题意:求第n项的法雷级数是多少。思路:法雷级数,百度百科就可以知道后一项和前一项的差值就是与该数互质的数的个数,因为如果不互质就约分变成其他数了。求小于n与n互质的数的个数正是欧拉函数的作用,但是这题数据量大,需要打个表再判断。打表也不是普通的打表,不是那种先打个素数表,然后再来一次打欧拉表,最后打法雷级表,时间应该超原创 2017-02-22 20:56:59 · 532 阅读 · 0 评论 -
poj3090 Visible Lattice Points(法雷级数)
http://poj.org/problem?id=3090题意:求在边长为n的正方形内有多少能看见的点。思路:刚开始愣是以为n是视野长度半径,懵逼了半天。这里看不见的点无非就是被挡住路线重合的点,这条路线上离原点最近的x和y必定没有最大公约数,因为有最大公约数的都是后面被挡住的。这样x轴上45度角以内的能看到的所有点都是斜率不同的点,且x和y互素,y/x就是斜率也就是法雷级数原创 2017-02-23 15:12:57 · 376 阅读 · 0 评论 -
数论常见定理汇总
入门数论,做题时候好多定理老是忘,这里汇总下吧,不定期更新。ps:来源有大牛一号1、欧拉函数:求小于或等于n的数中与n互质的数的数目。记为φ(n)。(1)、欧拉定理:若a与n互质,那么有a^φ(n) ≡ 1(mod n),经常用于求幂的模。(2)、若p是一个质数,那么φ(p) = p-1,注意φ(1) = 1。(3)、欧拉函数是积性函数:若m与n互质,那么φ原创 2017-02-21 22:20:58 · 3607 阅读 · 0 评论 -
hdu1796 How many integers can you find(容斥原理裸)
http://acm.hdu.edu.cn/showproblem.php?pid=1796题意:求小于n的数中有多少个能被集合m中元素整除。思路:挑战上的裸题,还基本是看的别人的思路,只学了一种深搜。就如书上所说我们利用的是m比较小的条件,容斥原理说白了就是被覆盖奇数次的个数加上,被覆盖偶数次的个数减去,以达到不重复计算的效果。比如:集合m的元素有2、3、4、5原创 2016-11-23 21:00:22 · 383 阅读 · 0 评论 -
poj2249 Binomial Showdown(二项式系数)
http://poj.org/problem?id=2249题意:求组合数C(n,k),最后的结果超大可能是2^31。思路:刚开始本来想把前些日子的dp法复习下,结果RE。2^31至少要开10000*10000的二维数组,行不通。。后来就想,其实这题有个很简单的方法,很久以前也碰到过类似的问题。C(n,k) = n!/(k!*(n-k)!)。我们知道n!有n项,k!有k原创 2017-03-16 21:59:52 · 542 阅读 · 0 评论