ACM之数学
noname40
这个作者很懒,什么都没留下…
展开
-
poj 1995 整数快速幂模m
题意:做codeforces碰到的矩阵快速幂,学的过程中顺便学学这种二分幂的方法。题意就是求ai^bi进行累加和,最后模m。 思路:将幂转化成二进制来算。 #include #include using namespace std; int main() { long long Z , M , H , a , b; scanf("%lld",&Z); while (原创 2012-05-07 18:12:11 · 1782 阅读 · 0 评论 -
poj 3233 矩阵快速幂 + 二分求和
题意:给定n*n的矩阵和一个整数k , 要求计算 S = A + A^2 + A^2 + ... + A^k。 思路:A^i 可以通过 矩阵快速幂求得,但是由于k比较大,普通矩阵累加和会TLE,这里学习了一种二分的方法。思路通过群里大牛的提示 + 参考了依然题解。 S = A + A^2 + ... + A^k/2 + A^k/2(A + A^2 + ... + A^k/2) 此时要讨论k原创 2012-05-10 19:05:35 · 666 阅读 · 0 评论 -
poj 3070 Fibonacci + 矩阵乘法(矩阵快速幂)
题意:就是求第n个斐波那契数。 思路:因为 F(n) = F(n-1) + F(n-2); F(n-1) = F(n-1) + 0*F(n-2); 则有矩阵A [1 1] [F(n-1)] [ F(n) ] [1]原创 2012-05-10 17:49:44 · 1071 阅读 · 0 评论 -
Codeforces Round #118 (Div. 2) :C (矩阵快速幂)类似与斐波那契+矩阵乘法
参考地址:http://acshiryu.com/archives/1349 如图: 就是求第n个图形的上三角形的个数。 设f[n]为第n个图形的上三角的个数 g[n]为第n个图形的下三角的个数 则有: f[n]=3*f[n-1]+g[n-1]; g[n]=3*g[n-1]+f[n-1]; 可以用矩阵快速幂解决。 #include #include #define Mod原创 2012-05-10 18:07:49 · 1798 阅读 · 0 评论 -
poj 2407 求欧拉函数值
题意:给出n求欧拉函数值。 以后再把求欧拉函数的方法完善下,看来知识都有连锁反应啊。。。想做一道题得看不少东西。。。先看看欧拉这个鸟人。。 #include #include #include using namespace std; int phi(int n) { int ans = n; for(int i = 2 ; i*i <= n ; i ++) {原创 2012-08-11 23:00:01 · 1105 阅读 · 0 评论 -
poj 1061 青蛙的约会
题意:中文题 不解释了 思路:两只青蛙跳了t步,A的坐标是x+mt,B的坐标是y+nt。它们相遇的时间的充要条件是:x+mt-y-nt=pL 即:(n-m)t+Lp = x-y ----- ax+mx= b解这个同余方程的非负整数解就行 x0解出的是ax+mx=d(d是a , b最大公约数) 有解的时候 d|b 所以把x0扩大d/b倍数即可 #include #include #inc原创 2012-09-02 16:24:47 · 390 阅读 · 0 评论