随笔分类 -  数论

摘要:题意:给一个整数n,求当n由1到k的连续整数加或减组成时的最小的k。解法:一开始觉得dp……后来觉得复杂度太大了……GG……百度了一下是个数学题orz。如果n全部由加法组成,那么k可以组成k(k+1)/2,设减掉的部分为s,则有k(k+1)/2-2s=n,所以n和k(k+1)/2mod2同余。代码:... 阅读全文
posted @ 2015-11-07 20:46 露儿大人 阅读(150) 评论(0) 推荐(0)
摘要:题意:给一个n×n的矩阵A,求S=A+A2+A3+ … +Ak。解法:从式子中可得递推式S(n) = S(n - 1) + An,An = An-1×A,可得矩阵递推式[S(n), An] = [S(n - 1), An-1] * [1 0] [A A] ... 阅读全文
posted @ 2015-10-13 16:35 露儿大人 阅读(162) 评论(0) 推荐(0)
摘要:题意:求斐波那契数列第n项,mod10000。解法:矩阵快速幂。矩阵递推式题里都给了……真贴心……不过我觉得第一个矩阵的第二行有点多余,就给擅自省了……嗯……代码:#include#include#include#include#include#include#include#include#inc... 阅读全文
posted @ 2015-10-06 18:40 露儿大人 阅读(132) 评论(0) 推荐(0)
摘要:题意:对于一个大整数,判断是否质数,如果不是质数输出最小质因子。解法:判断质数使用Miller-Rabin测试,分解质因子使用Pollard-Rho,Miller-Rabin测试用的红书模板,将测试集根据matrix67的博客进行了拓展,不过也可以随机取的样子,Pollard-Rho用的kuangb... 阅读全文
posted @ 2015-10-06 13:44 露儿大人 阅读(153) 评论(0) 推荐(0)
摘要:题意:求n阶乘的位数。解法:斯特林公式,,然后取log10就是位数了,因为精度问题需要化简这个式子,特判1。代码:#include#include#include#include#include#include#include#include#include#include#include#incl... 阅读全文
posted @ 2015-09-30 15:05 露儿大人 阅读(159) 评论(0) 推荐(0)
摘要:题意:求一个数的阶乘最后边有几个0。解法:如果有0说明这个数含有2和5这两个因子,对于一个阶乘来说因子2的数量一定比5的数量多,所以只要算有几个5就可以了,依次算5的个数,25的个数,125的个数……n以下的数字里含有因子5的数的个数是⌊n / 5⌋,含有因子25的数的个数是⌊n / 25⌋,以此类... 阅读全文
posted @ 2015-09-30 14:14 露儿大人 阅读(147) 评论(0) 推荐(0)
摘要:题意:求数根。解法:一个数的数根就是mod9的值,0换成9,只是没想到给的是一个大数……只好先把每位都加起来再mod9……代码:#include#include#include#include#include#include#include#include#include#include#inclu... 阅读全文
posted @ 2015-09-30 13:57 露儿大人 阅读(176) 评论(0) 推荐(0)
摘要:题意:一个游戏,A童鞋在1~n的范围里猜一个数,B童鞋询问一个集合,A童鞋要对集合里每个数做出回答,他猜的数能否给整除,B要通过这些答案得到A猜的数,最少需要猜哪些数?解法:一个数可以由若干个质数的指数次幂相乘得到,所以只要询问小于n的所有质数的指数次幂就可以得到全部数的答案。代码:#include... 阅读全文
posted @ 2015-09-11 21:47 露儿大人 阅读(410) 评论(0) 推荐(0)
摘要:题意:给一个长度为n的正整数序列,问能不能找到一个不连续的子序列的和可以被m整除。解法:抽屉原理+dp。首先当m#include#include#include#include#include#include#include#include#include#include#include#inclu... 阅读全文
posted @ 2015-09-11 21:19 露儿大人 阅读(1397) 评论(0) 推荐(0)
摘要:题意:问在一个圆形的镜面里,从任意一点发出一个光源,经n次反射回到起点的情况数是多少。解法:直接贴题解吧……求1至N+1中与N+1互质的个数,即欧拉函数。代码:#include#include#include#include#include#include#include#include#inclu... 阅读全文
posted @ 2015-09-06 11:23 露儿大人 阅读(174) 评论(0) 推荐(0)
摘要:题意:给一个正整数k,求lcm((k, 0), (k, 1), ..., (k, k))解法:在oeis上查了这个序列,得知答案即为lcm(1, 2, ..., k + 1) / (k + 1),而分子有一个递推式,如果k为一个质数x的某次幂,那么ans[k]为ans[k - 1] * m,否则an... 阅读全文
posted @ 2015-08-25 19:03 露儿大人 阅读(194) 评论(0) 推荐(0)
摘要:题意:求1到n中所有数的倒数中循环小数循环体最长的数解法:如果一个数的质因子只有2和5,那么这个数的倒数一定不是一个循环小数。如果一个数含有质因子2或5,那么它的循环体和去掉质因子2和5之后的数的循环体是一样长的,如3和6。对于一个质因子没有2和5的数,能被几个9组成的数整除它的循环体就有多长,如1... 阅读全文
posted @ 2015-06-19 15:26 露儿大人 阅读(239) 评论(0) 推荐(0)
摘要:题意:有k个好人和k个坏人进行约瑟夫环问题,好人在前面,坏人在后面(即好人编号为0...k - 1),求一个最小的m,使他们用m报数时所有坏人在有好人出局之前出局解法:一开始没怎么细想就写了个模拟……果断T了……于是想把结果打表……结果发现k = 13时根本跑不完……于是还是枚举m,推导每次出局的人... 阅读全文
posted @ 2015-04-25 11:23 露儿大人 阅读(159) 评论(0) 推荐(0)
摘要:题意:有两只青蛙,在L那么长的环上,起点分别为x, y,一次跳跃的长度分别为m,n,问几次跳跃后他们能相遇,如不能相遇输出"Impossible"。解法:同余问题+扩展欧几里得。从题意容易推出以下式子:设跳跃次数为t,mt + x ≡ nt + y (mod L) (1)。根据同余的性质:当a≡ b... 阅读全文
posted @ 2015-04-02 15:59 露儿大人 阅读(169) 评论(0) 推荐(0)
摘要:题意:给出整数n,求1...n的排列中有那些数是13542或53124,即先上升后下降或先下降后上升,可以完全上升或下降。答案和p取模。解法:找呀找呀找规律。从样例可以直接猜到规律就是2 ^ n - 2,然后我大概推理了一下。当n等于3时,可以发现所有的排列都符合这一特点。123, 132, 213... 阅读全文
posted @ 2015-03-22 16:46 露儿大人 阅读(160) 评论(0) 推荐(0)
摘要:题意:给出整数T,P,求c(T,P) mod P。解法:用卢卡斯定理。 卢卡斯定理:解决c(n,m) mod p问题。Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p)。 本题m=p,所以Lucas(n,p,p)化简得(n/p)%p。 卢卡斯定理的证明... 阅读全文
posted @ 2014-11-16 21:50 露儿大人 阅读(177) 评论(0) 推荐(0)