随笔分类 -  数论||数学

摘要:比如模数是1e15这种,相乘的时候爆LL了,但是又不想用大数,咋办呢? 转long double再搞回来 《算法竞赛进阶指南》 听说很稳? a∗bmodp=a∗b−⌊a∗bp⌋∗pa∗bmodp=a∗b−⌊a∗bp⌋∗p 用long double来计算⌊a∗bp⌋⌊a∗bp⌋,误差很小,因为long 阅读全文
posted @ 2018-09-10 14:22 shuai_hui 阅读(1129) 评论(0) 推荐(0)
摘要:题目大意:就是找一个数拆成两个无平方因子的组合数,然后求个前缀和 ; 分析:运用筛法的思想 , 因为有序对是由两个合法的数字组成的,所以只要保证第一个数合法,第二个数也合法就行,找出合法的第二个数字的个数就可以用sum前缀和来算,所以L就是第一个数,R=n/L就是最大的第二个数,这里又规定了第二个数 阅读全文
posted @ 2018-09-03 21:15 shuai_hui 阅读(179) 评论(0) 推荐(0)
摘要:题目描述 求两个数m和n的最大公约数。((m>0,n>0)) 输入 输入二个数,即m和n的值。 输出 输出最大公约数。 法1(参考《信息学奥赛一本通》) 求任意两数(假设是n,m)的公约数,公约数最大可能就是较小的那个数(假设为m),最小为1。所以可以先设最大公约数gys=m。如果gys>1,且没被 阅读全文
posted @ 2018-08-27 19:48 shuai_hui 阅读(302) 评论(0) 推荐(0)
摘要:高斯消元快速入门 一、基本描述 学习一个算法/技能,首先要知道它是干什么的,那么高斯消元是干啥的呢? 高斯消元主要用来求解线性方程组,也可以求解矩阵的秩,矩阵的逆。在ACM中是一个有力的数学武器. 它的时间复杂度是n^3,主要与方程组的个数,未知数的个数有关。 那么什么是线性方程组呢? 简而言之就是 阅读全文
posted @ 2018-08-27 17:10 shuai_hui 阅读(313) 评论(0) 推荐(0)
摘要:题意 给你N个数字和一个K,问一共有几种拼接数字的方式使得到的数字是K的倍数,拼接:“234”和“123”拼接得到“234123” 分析: N <= 2e5,简单的暴力O(N^2)枚举肯定超时 数字A和B拼接,B的位数最多10位,如果我们知道位数为(1-10)的数字和A拼接满足是K的倍数这样的数字有 阅读全文
posted @ 2018-08-27 13:47 shuai_hui 阅读(141) 评论(0) 推荐(0)
摘要:给定的pp是素数,要求给定一个加法运算表和乘法运算表,使(m+n)^p=m^p+n^p(0≤m,n<p)(m+n)^p=m^p+n^p(0≤m,n<p)。因为给定的p是素数,根据费马小定理得 (m+n)^(p−1)≡1(mod p)因此,(m+n)^p≡m+n (mod p)同时,m^p+n^p≡m 阅读全文
posted @ 2018-08-26 11:17 shuai_hui 阅读(97) 评论(0) 推荐(0)
摘要:n为奇数有勾股数(2*n+1,2*n*n+2*n,n*n+1);n为偶数有勾股数(2*n,n*n-1,n*n+1)。 阅读全文
posted @ 2018-08-26 11:10 shuai_hui 阅读(310) 评论(0) 推荐(0)
摘要:给定a1,a2,.....,am,求1到n的整数中至少可以整除a中一个元素的数有多少个?3 阅读全文
posted @ 2018-08-01 12:36 shuai_hui 阅读(192) 评论(0) 推荐(0)
摘要:求(3+开根5) N次方的整数部分最后3位,请补足前导零 。 分析:首先(1)=(3+开根5) N次方的展开为 an + bn * 根号5 的形式 。 同时也有 (2)=(3-开根5) N次方 = an - bn * 根号5 ; 则可以得出 (1)+(2) = 2*an,, so (1) = 2*a 阅读全文
posted @ 2018-07-24 12:25 shuai_hui 阅读(1281) 评论(0) 推荐(0)
摘要:题意:个n个方块涂色, 只能涂红黄蓝绿四种颜色,求最终红色和绿色都为偶数的方案数。 该题我们可以想到一个递推式 。 设a[i]表示到第i个方块为止红绿是偶数的方案数, b[i]为红绿恰有一个是偶数的方案数, c[i]表示红绿都是奇数的方案数。 那么有如下递推可能: 递推a[i+1]:1.到第i个为止 阅读全文
posted @ 2018-06-07 20:08 shuai_hui 阅读(159) 评论(0) 推荐(0)
摘要:Description 不知道Alice是从哪里听到Fibonacci数列,并对它发生了浓厚的兴趣。她想看看这个数列的递增过程是怎样的。 众所周知,Fibonacci数列的第一项是1,第二项也是1,从第三项开始,每项都是它前面两项之和。数列前面的一些项比较小,但增长速度很快,后面的项变得很大很大。 阅读全文
posted @ 2018-06-06 22:53 shuai_hui 阅读(234) 评论(0) 推荐(0)
摘要:(1)矩阵乘法 简单的说矩阵就是二维数组,数存在里面,矩阵乘法的规则:A*B=C 其中c[i][j]为A的第i行与B的第j列对应乘积的和,即: 据说,矩阵快速幂在递推式优化上相当神奇,而且效率很高。。。 两矩阵相乘,朴素算法的复杂度是O(N^3)。如果求一次矩阵的M次幂,按朴素的写法就是O(N^3* 阅读全文
posted @ 2018-06-06 20:45 shuai_hui 阅读(301) 评论(0) 推荐(0)
摘要:反素数 拿按上次你上次 从OSCN FSK从的viv红尘饿哦v你的的v你v 0 JCOD NVEN AODKVN ODV D DVDDV 阅读全文
posted @ 2018-05-24 16:52 shuai_hui 阅读(121) 评论(0) 推荐(0)
摘要:求两个三位数乘机是回文数的最大值 其实就是求 10000-998001之间、可由两个三位数的乘机的最大回文数 abccba然后简化为:100000a + 10000b + 1000c + 100c + 10b + a然后:100001a + 10010b + 1100c分解11,得到:11(9091 阅读全文
posted @ 2018-05-10 22:19 shuai_hui 阅读(308) 评论(0) 推荐(0)
摘要:13195的质数因子有5,7,13和29. 600851475143的最大质数因子是多少? 这里可以肯定的是:1.数字很大,绝对不能暴力。2.如果这是一到OJ题,那么我们的目的就是尽量缩小这个数,减少计算量。 我们都知道,任何一个合数都是可以由他的所有质因素相乘得到的,比如15=3*3*3*3*3, 阅读全文
posted @ 2018-05-09 21:37 shuai_hui 阅读(429) 评论(0) 推荐(0)
摘要:康托展开是一个全排列到一个自然数的双射,常用于构建hash表时的空间压缩。设有n个数(1,2,3,4,…,n),可以有组成不同(n!种)的排列组合,康托展开表示的就是是当前排列组合在n个不同元素的全排列中的名次。 逆康托展开给一个数字求出第几个排列组合。 给出n和操作数k,要求资瓷: P x求n的第 阅读全文
posted @ 2018-05-03 23:17 shuai_hui 阅读(177) 评论(0) 推荐(0)
摘要:首先,我们得知道一定定理,如果10的n次方,那这个n就是多少位,对不对!对,这就很秒了 比如如果求一个N的数,N=10的log10N的次方,那么它的位数就是log10 N,流弊!! 有人说log10 怎么打?很简单c++的库函数里面有 log10(100)的返回值就是2,log(999)的返回值是二 阅读全文
posted @ 2018-05-02 21:11 shuai_hui 阅读(262) 评论(0) 推荐(0)
摘要:素数的判断其实谁都会,所以这篇跳过简单的素数判断,直接学习如何快速判断1到N的素数,以及判断大数据是否为素数。 (1)埃氏筛法 现在我们先学习埃氏筛选法,此法实用与大规模判断素数,比如1到N的素数有那些啊,等等等等。 这个算法流弊哦,与辗转相除法一样古老哇。 首先,将2到n范围内的所有整数写下来。其 阅读全文
posted @ 2018-05-02 19:11 shuai_hui 阅读(681) 评论(0) 推荐(0)
摘要:二分乘法主要是解决乘法的结果远超int范围,但需要的结果有取余的乘法运算 LL multi(LL a,LL b,LL m) { LL ans = 0; a %= m; while(b) { if(b & 1) { ans = (ans + a) % m; b--; } b >>= 1; a = (a 阅读全文
posted @ 2018-04-30 08:17 shuai_hui 阅读(203) 评论(0) 推荐(0)
摘要:long long quickpow(long long a, long long b) { if (b < 0) return 0; long long ret = 1; a %= mod; while(b) { if (b & 1) ret = (ret * a) % mod; b >>= 1; 阅读全文
posted @ 2018-04-30 08:10 shuai_hui 阅读(110) 评论(0) 推荐(0)