ACM_数论
文章平均质量分 83
Christine1024
这个作者很懒,什么都没留下…
展开
-
POJ 1305 Fermat vs. Pythagoras
题意:求n内本原毕达哥拉斯三元组的组数,以及n内没有被毕达哥拉斯数涉及到数的个数。 名词解释: 毕达哥拉斯三元组:又名勾股定理 本原的毕达哥拉斯三元组:指如果一个毕达哥拉斯三元组x,y,z 满足GCD(x,y,z)=1,那么这个毕达哥拉斯三元组称为本原的 正整数x,y,z构成一个本原毕达哥拉斯三元组且y为偶数,当且仅当存在互素的正整数m,n(m>n原创 2013-07-11 17:52:49 · 803 阅读 · 0 评论 -
hdu3117 Fibonacci Numbers (矩阵快速幂)
题目大意:输入一个n,求n的斐波那契数值的前四位,如果位数小于等于8 位,则全部输出。 解题思路:后四位可用矩阵快速幂求出,而前四位则可用公式求出,借鉴了某大神的博客http://blog.sina.com.cn/s/blog_9bf748f301019q3t.html 求解前四位的方法:斐波那契数列的通项公式如下:, 改变通项的形式: F(n)=(1/√5)*[((1+√5)/原创 2013-08-31 20:47:35 · 792 阅读 · 0 评论 -
求1^k+2^k+...+n^k ZOJ 2865
公式:转载 2013-08-19 09:35:49 · 2105 阅读 · 0 评论 -
HDU 1573 X问题 (非互质情况下的中国剩余定理)
解题思路: 1. 因为(a1,a2,a3,a4,….,ak)不一定互质,所以不能够直接用中国剩余定理。 2. x=r1+a1*k1,x=r2+a2*k2,所以有r1+a1*k1=r2+a2*k2,化简后得到 a1*k1=(r2-r1) mod(a2); 用扩展欧几里得可以得到最小的k1,所以x=r1+a1*k1+a1*a2/gcd(a1,a2), 就这样一直替换最后剩余一个同余方程。r1就原创 2013-08-19 15:42:57 · 778 阅读 · 0 评论 -
2013 ACM/ICPC 长沙网络赛-Goldbach
http://blog.csdn.net/z309241990/article/details/11917495 题目大意:给一个数n, 最多由三个素数通过加、乘运算得到n 有多少种组合。 解题思路: 首先通过筛选法找出所有的素数,然后依次算出2个素数的和与积的个数,对于每次输入的n,采取如下措施: 1、若n为素数,则答案+1; 2、直接加上n由2个素数相加和相乘的所有情转载 2013-09-23 20:29:11 · 722 阅读 · 0 评论 -
hdu2276 Kiki & Little Kiki 2
还不是很懂,mark,,,,, #include #include #include struct Mat { bool num[101][101]; }; Mat init, unit; int m, n; Mat Mul(Mat a, Mat b) { Mat c; for(int i = 0 ; i < n; i ++) {原创 2013-09-04 09:40:36 · 592 阅读 · 0 评论 -
uva 10655 Algebraic Problem(矩阵快速幂)
解题思路: 已知: p=a+b q=a*b 求: a^n+b^n 构造矩阵 X(n)=a^n+b^n ... X(0)=2; X(1)=a+b=x; X(n)=(a+b)*X(n-1) - a*b*X(n-2) | (a+b) -a*b | | X(n-原创 2013-09-10 16:33:04 · 785 阅读 · 0 评论 -
hdu1588 Gauss Fibonacci (矩阵快速幂)
P.S. 感谢大神,借鉴于此:http://blog.csdn.net/shiyuankongbu/article/details/8458459 讲的真心很明白,,, 题目大意:给定k, n, b, M , 求斐波那契数列第b项到第 k*i+b 项( 0 解题思路:对于F(b) + F(k+b) + F(2*k+b) + … + F( (n-1) *原创 2013-09-02 17:51:45 · 698 阅读 · 0 评论 -
矩阵快速幂
转自:http://www.cnblogs.com/yan-boy/archive/2012/11/29/2795294.html 矩阵的快速幂是用来高效地计算矩阵的高次方的。将朴素的o(n)的时间复杂度,降到log(n)。 这里先对原理(主要运用了矩阵乘法的结合律)做下简单形象的介绍: 一般一个矩阵的n次方,我们会通过连乘n-1次来得到它的n次幂。 但做下简单的改进就能减少连乘的次数,方转载 2013-09-01 18:44:03 · 764 阅读 · 0 评论 -
容斥原理 from vici
http://www.cppblog.com/vici/archive/2011/09/05/155103.html原创 2013-08-31 10:20:04 · 681 阅读 · 0 评论 -
HDU 4655 Cut Pieces
#include #include #include #include #include #include using namespace std; #define M 1000000007 #define LL long long const int maxn = 1000007; LL a[maxn] ,b[maxn]; LL min(LL a,LL b) { if(a<b) r原创 2013-08-08 18:44:07 · 782 阅读 · 0 评论 -
POJ 1845 Sumdiv(质因数分解+快速幂+二分法求等比数列的和)
题目大意:求 A ^ B 的所有约数的和 模 9901 的值。 解题思路: 1、对A进行素因子分解得: A = p1^a1 * p2^a2 * p3^a3 * ... * pn^an. 故 A ^ B = p1^(a1*B) * p2^(a2*B) * ... * pn^(an*B); 2、A ^ B 的所有约数之原创 2013-07-21 10:37:55 · 1115 阅读 · 0 评论 -
Codeforces Round #191 (Div. 2) C magic five
题目大意:给定一个字符串 s,长度 len 最长是100000,接着输入一个整数 k,k 最大是10的9次方,求 k 个 s 连接在一起得到一个串,设为str,从str中删除一些数(也可以不删,但不能全部删除),使得得到的数能够整除5,求共有多少种删除方式,注意:被删除的数的位置不同,算做不同的删除方式。 解题思路:我们知道如果一个数能够整除5,那它的个位数一定是 0 或者 5 。因此我原创 2013-07-19 22:29:51 · 726 阅读 · 0 评论 -
POJ 1320 Street Numbers [佩尔方程]
#include #include #include int main() { int x,y,x1,y1,px,py,d; x1=3; y1=1; px=3; py=1; d=8; for(int i=1;i<=10;i++) { x=px*x1+d*py*y1; y=px*y1+py*x1;原创 2013-07-11 17:33:52 · 971 阅读 · 0 评论 -
hdu1575 Tr A(矩阵快速幂模板题)
1A,不解释,直接贴代码! P.S.:此题代码可用作模板 #include #include #include #include using namespace std; #define MAXN 12 #define M 9973 typedef struct { int m[MAXN][MAXN]; }Matrix; Matrix a, per; int n; vo原创 2013-09-01 19:18:58 · 828 阅读 · 0 评论