
数论/概率学/组合学/离散数学/(线性)代数
文章平均质量分 62
ccDLlyy
不忘初心,方得始终
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
几个重要的排列组合定理公式
1.排列的几个定理公式.排列,一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(Arrangement)。特别地,当m=n时,这个排列被称作全排列(Permutation)。.n个元素的循环r-排列的个数为上式除以r循环,顾名思义,就是围成一圈,规定一个方向(顺或逆),转一圈形成的为一种。如:若不围一圈,1234原创 2017-02-01 16:29:17 · 42610 阅读 · 1 评论 -
POJ 3187 Backward Digit Sums(next_permutation()+ 组合数)
题目链接:点击打开链接思路:超级大水题。暴力的方法是,每次生成的排列,模拟出最后的和。稍微加些思维可以想到,当把第一行n个数加的次数求出来(得到最后的和是自顶向下,求次数的过程可以采用逆向思维,自底向上),会发现对应杨辉三角的第n行(从1计数),所以先打表预处理,然后枚举所有的排列,直接用这个表计算结果。#include #include #include #include usi原创 2017-10-27 15:20:38 · 352 阅读 · 0 评论 -
求组合数
一:由公式直接求组合数,C(n,m)= n!/ (m! * (n - m)!),预处理打阶乘表n!限制了n的范围为n #define LL long longLL f[21];void init() { f[0] = 1; for (int i = 1; i <= 20; i++) { f[i] = f[i - 1] * i; }}LL C(int n, int m) {原创 2017-08-15 20:06:33 · 969 阅读 · 1 评论 -
2017百度之星初赛(B) 1001 Chess(找规律+递推求组合数)
题目链接:点击打开链接思路:看到这个题呢,开始想的复杂了,可能受八皇后思维的影响,光想着怎么改进八皇后的算法,利用搜索去解题,此题的棋盘规模大,利用搜索和八皇后的思维肯定超时,而且一开始对题意有疑问,“摆最多个数的車“,何为最多个数?最后想不起来怎么修改算法,就去考虑,会不会是递推题或者分治题或者规律题?仔细一想,还真有规律可求,最多个数,就是这个棋盘最多放多少車,求在棋盘放这个数量車的方案数原创 2017-08-15 13:38:34 · 562 阅读 · 0 评论 -
2017百度之星初赛(A)1001 小C的倍数问题(求因子数)
题目链接:点击打开链接题目中文,题意不再详述思路:当p = 10,满足条件的B有1、3、9,可以看出为9的因子,类比可得出其他进制的规律,p进制满足条件的B为p - 1的因子。(数论不好,具体咋证明不知道,自己遇到这种题,基本就是凭经验乱搞......)求一个数的因子数的方法很多:最暴力的就是枚举,数据范围1e9,此办法排除;求出质因子的分解再去确定因子数,因为要进行素数打表预处理,原创 2017-08-15 11:14:42 · 593 阅读 · 0 评论 -
Max Factor(素数筛法+把一个数进行素数分解) HDU2710
/*DescriptionTo improve the organization of his farm, Farmer John labels each of his N (1 <= N <= 5,000) cows with a distinct serial number in the range 1..20,000. Unfortunately, he is unaware that t原创 2016-08-12 23:47:08 · 1037 阅读 · 0 评论 -
同模定理
A*B % C = (A%C * B%C)%C(A+B)%C = (A%C + B%C)%C如:532 mod 7 =(500%7+30%7+2%7)%7原创 2016-11-12 15:02:38 · 2654 阅读 · 0 评论 -
欧几里德求最大公约数(辗转相除法)
定理:Gcd(m,n)=Gcd(n,m mod n)证明:对于任何正整数a,b。如果a>b,都有a=k*b+r 即r=a-k*b => r=a mod b.假设d为a,b的公约数,则a=a1*d,b=b1*d。而r=a1*d-k*b1*d=(a1-k*b1)*d => d也是r的约数 => d也是(a,r)的公约数则说明(a,b)的公约数也就是(b,r)的公约数。因此g原创 2016-11-16 13:35:52 · 788 阅读 · 0 评论 -
素数筛法
//素数筛法1//非线性#include #include #include using namespace std;#define MAXN 1000int main(){ bool array[MAXN+1]; memset(array,true,sizeof(array)); array[0]=array[1]=false; for(int i=2;i<=MAXN/2;原创 2016-11-16 15:38:27 · 475 阅读 · 0 评论 -
合数分解
//任何一个合数均能分解为质数的连乘积//分解为a^m*b^n*c^q......a,b,c均为质数且a<b<c//把一个数进行素数分解,得到的因子为全部这个数可被之整除的素数法一:struct node{ int num; int index;};struct node array[MAXN];int top=-1;for(int i=2;number!=1;i++){ i原创 2016-11-16 16:51:56 · 5980 阅读 · 0 评论 -
关于质数的几个定理
1.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。2.互质指的是除了1,没有其他的公因子。3.素数p的欧拉函数为p-1,且两个素数之间的非素数的欧拉函数的值小于第一个素数的欧拉函数的值。4.任一大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且这种分解是唯一的。5.若n为正整数,在 到 之间至少有一个质数。6.若n为大于或等于2原创 2017-03-25 20:05:18 · 15398 阅读 · 0 评论 -
欧几里得算法及其拓展
1.欧几里得算法:gcd(a,b) = gcd(b,a mod b),递归程序:int gcd (int a,int b){ return b==0?a:gcd(b,a % b);}可证:gcd(a,b)*lcm(a,b) = a*b,为了防止 溢出,常写为 lcm(a,b) = a/gcd(a,b)*b原创 2017-05-09 16:51:38 · 434 阅读 · 0 评论 -
欧拉函数
欧拉函数:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括1)的个数,记作 φ(n)。特别的,φ(1)=1;当n为奇数时,φ(2n)=φ(n)。性质:若p为质数,则φ(p)=p-1若p为质数且n=pr,则φ(n)=pr-pr-1=p(r-1)(p-1)积性函数:若a,b互质,则φ(ab)=φ(a)φ(b)按照算术基本定理,任意数x均可表示为x=p1r1p2r原创 2017-03-29 09:08:41 · 597 阅读 · 0 评论 -
LightOj 1370 Pi shoe and Phi shoe
Bamboo Pole-vault is a massively popular sport in Xzhiland. And Master Phi-shoe is a very popular coach for his success. He needs some bamboos for his students, so he asked his assistant Bi-Shoe to go原创 2017-03-22 21:23:12 · 649 阅读 · 0 评论 -
CodeForces 876B Divisiblity of Differences(思维 + 数学)
题目:点击打开链接题意:从n个数中找到k个数,满足任意两者的差能够除尽m。思路:设两个数a、b,若(a - b)% m = 0,则a可写成k1*m + c,b可写成k2*m + c,所以根据对m取余的结果把n个数分类即可。// Code Forces 876B Divisiblity of Differences 运行/限制:61ms/1000ms#include #include原创 2017-12-23 19:18:07 · 464 阅读 · 0 评论