数论
文章平均质量分 66
阿言在学习
这个作者很懒,什么都没留下…
展开
-
卡特兰数-两个经典做法
卡特兰数现在我能接触到的用处就是用于解决一个序列中,任意前缀和中1的数量不少于0的数量(在这个序列中,1与0的个数相等)证明如下图:卡特兰数 =(公式一) C(2* n , n) - C(2n , n- 1) = (公式二)C(2n , n) / (n + 1)组合数的板子很多,我们这里简单说3个吧模板一 :组合数求余大质数求C(a,b)时间复杂度: O(a * loga)#include<cstdio>#include<cstring>#include<io原创 2020-10-15 15:57:36 · 246 阅读 · 0 评论 -
辗转相减法的发展应用-最大比例
这个题用到了辗转相减法的一个特殊应用简单分析一下如下1223. 最大比例X星球的某个大奖赛设了 M 级奖励。每个级别的奖金是一个正整数。并且,相邻的两个级别间的比例是个固定值。也就是说:所有级别的奖金数构成了一个等比数列。比如:16,24,36,54,其等比值为:3/2。现在,我们随机调查了一些获奖者的奖金数。请你据此推算可能的最大的等比值。输入格式第一行为数字 N ,表示接下的一行包含 N 个正整数。第二行 N 个正整数 Xi,用空格分开,每个整数表示调查到的某人的奖金数额。输出原创 2020-10-08 15:58:54 · 201 阅读 · 0 评论 -
acWing 1296 聪明的燕姿
用到了算数基本定理的思想,欧拉筛的不记录最小质因子的板子,另外在优化dfs的时候还用到了小学生求素数的一点小思想,下面我们简单说一下思路和分析几个问题。思路:正约数之和等于s的数,容易想到直接枚举每一个质数与每一个质数的数量,然后进行优化。第一个问题:欧拉筛存质数的数组到底开多大?这个问题,谁一开始写这个代码也不知道,除非花了很多时间分析,所以我们先保留这个问题。第二个问题:如何优化枚举。(1)先枚举数量还是先枚举质数?答:先枚举质数比较好,因为我们可以让下一次dfs调用,枚举素数开始的位置为上原创 2020-10-06 14:43:01 · 156 阅读 · 0 评论 -
最大公约数
我们首先要搞清楚的是,最大公约数是怎么算出来的。a和b的最大公约数,其本质就是他们公因子中最大的那个,所以我们把问题指向了公因子的个数,所以首先就是分解这n个数的因子,最后利用出现次数的桶数组找到最优解。这里需要注意一点,有些较大的因子可能出现的次数比较多,反而较小的因子可能出现的次数比较少,那么我们就需要逆向更新,因为n个数中出现n次的因子非常固定,一定是1,所以逆向更新,即得最优解...原创 2020-03-10 12:08:49 · 359 阅读 · 0 评论 -
唯一分解,逆元,正约数个数和正约数和,欧拉筛
唯一分解,上次写的是需要欧拉筛的,这次写了一个不需要欧拉筛的逆元:(a/b)mod p,因为除法对mod无效,所以使用逆元,对a*(b)^(-1)mod p,b^(-1) mod p求逆元等于 pow(p,mod-2)%mod,为什么?我现在也不会,记住吧,反正我知道(a/b)modp没法算就是了正约数和:(1+p1+p1^2...p1^e1)*..*(1+pm+pm^2+....+...原创 2020-03-09 22:07:42 · 246 阅读 · 1 评论 -
最大公约数1
对于给定一个数n,我们对1-n的数进行操作,离不开一条性质性质(个人总结):n作为1-n中最大的数,那么n/k就是n最多能由k个x组成,也就是x为k的最大公约数相似的,在n!里寻找有多少个质因子5,那么!n可以写成是1*2*3*...*n,同样n也是最大的,那么n里面有几个5,同样也是n/5 =x,证明n里面有x个5,那么这n个5,只有一个的时候是5,两个的时候10,5个5的时候就是特殊...原创 2020-03-09 15:45:26 · 582 阅读 · 0 评论 -
lcm&gcd&因数分解
又是一个快乐的数论题,快乐的就像鱼没有水一样,快乐的想s.....lcm(p,q) = (p*q)/gcd(p*q)p*q = lcm*gcd = sum利用上面的等式,从1到i*i == sum分解sum的因子,需要注意一点是,gcd(i,sum/i) == x7-2最大公约数和最小公倍数2(20分)最大公约数和最小公倍数2输入2个正整数x0,y0(2≤x0≤1000...原创 2020-03-07 23:03:12 · 203 阅读 · 0 评论 -
mmh学长的实验器材
这个题是QDU改编的一道题目,我们经过题目分析,可以很容易的得出这个题跟自然数的因子个数有关,这个题我们可以看到n取得是1e6,也就是说我们的时间复杂度最多取到O(n)或者O(nlogn),但是题目的测试数据还有t,t为2000以内,那么我们O(nlogn)的话也是比较牵强的,所以我们最好是找个O(n)的算法 O(n)的话其实就需要借助数论了,我们需要知道某个自然数的因子数量,或者是他的...原创 2020-02-14 15:54:00 · 220 阅读 · 0 评论 -
数论——同余和费马小定理
同余:如果对于a和b,有a-b求余m等于零,则我们说a和b同余,记为a≡b(mod m)其实我们也可以通俗易懂的总结一下,就是a mod m == b mod m互质:gcd(a,b) == 1,我们就说两个数是互质的费马小定理:对于a和p两个互质的数,存在等式a^(p-1)≡1(mod p)我们举个经典的例子吧对于2^100 mod 13我可以看到,这里13和2是互质的,我...原创 2020-02-06 00:13:49 · 658 阅读 · 0 评论 -
整除光棍
这个题是一个思维题,他需要有一定的数学基础,比如小学毕业。。。我觉得,这个题告诉我,面对一个题,一个你不熟悉的题,我们虽然是程序员,虽然是要写思路给**计算机,让他知道怎么做这个问题,但是我觉得,最重要的是你得明白,你作为一个人来怎么解决这个题就拿我来说,我作为一个人,我要去找几个1能整除x,是不是一个一个的做除法的竖式,也就是什么?是不是模拟除法运算,题目给的条件是,能整除x的这个数...原创 2020-02-01 19:57:13 · 663 阅读 · 1 评论