
基础数学
XXXGFXXX
这个作者很懒,什么都没留下…
展开
-
ACM数学
1.burnside定理,polya计数法 这个专题我单独写了个小结,大家可以简单参考一下:polya 计数法,burnside定理小结 2.置换,置换的运算 置换的概念还是比较好理解的,《组合数学》里面有讲。对于置换的幂运算大家可以参考一下潘震皓的那篇《置换群快速幂运算研究与探讨》,写的很好。 *简单题:(应该理解概念就可以了)转载 2016-05-24 08:04:16 · 2162 阅读 · 0 评论 -
米勒罗宾素性测试(Miller–Rabin primality test)
判断素数或是筛法求素数的方法算是种必会的技能 筛法的效率很高 如欧氏筛法(即素数的倍数一定是合数 筛选法的效率很高,但是遇到大素数就无能为力了。 米勒罗宾素性测试是一个相当著名的判断是否是素数的算法,核心为费马小定理 能够很大概率的判断一个数是否是素数(接近100%,在一定范围内能达到100%,在1~100000000范围内的整数中,只有255个不满足数。)。原创 2016-05-24 09:22:18 · 4231 阅读 · 0 评论 -
矩阵快速幂
矩阵相乘: A,B两矩阵相乘得到的新矩阵的第i行j列值为A矩阵的第i行每个元素跟B矩阵第j列每个 元素相乘的和。 需要把主对角线赋值成1其余部分为0来初始化单位矩阵. 快速幂: 求a的b次幂O(lgn)方法(二进制迭代)。 把b转换成2进制数 该2进制数第i位的权为a^(2^(i-1))原创 2016-05-24 08:07:05 · 831 阅读 · 0 评论 -
HDU1575 Tr A
HDU1575:裸的矩阵快速幂(二进制迭代法),用结构体能省不少事,想的话也可以写个重载乘法 #include #include #define N 11 using namespace std; const int mod=9973; int n; struct matrix { int i,j; int a[N][N]; void init() {原创 2016-05-24 08:07:52 · 790 阅读 · 0 评论 -
HDU 2604 Queuing
HDU2604: 本鶸第二道矩阵快速幂。 题意: n个人排队,f表示女,m表示男,包含子串fmf和fff为O队列,否则为E队列,求有多少个序列为E队列。 由于只求个数,按经验xjb找一下递推公式 : 用lm(n)表示n个人满足结果的个数,那么 1)如果最后一个是m,那么就不考虑他,lm(n)为前n-1的结果个数; 2)如果最后一个是f,并且是mmf,那么需要向前推3位原创 2016-05-24 08:08:35 · 915 阅读 · 0 评论 -
位运算技巧
判断奇数 (x&1)==1 判断偶数 (x&1)==0 取右边第一个1所在位置 x&-x 异或:模2相加 去掉最后一位 | (101101->10110) | x >> 1 在最后加一个0 | (101101->1011010) | x 在最后加一个1 | (101101->1011011) | x 把最后一位变成1 | (101100->101101) | x | 1原创 2016-05-28 16:32:26 · 734 阅读 · 0 评论