题目大意:求(1^K + 2^K + 3K + - + N^K) % 2^32 解题思路: 借用别人的图 能够先打表,求出Cnm,用杨辉三角能够高速得到 #include<cstdio> typedef unsigned long long ll; const int N = 55; const ll mod = (1LL << 32); struct Matrix{ ll mat[N][N]; }A, B, tmp; ll n, num[N]; ll C[N][N]; int K…
题目链接:http://lightoj.com/volume_showproblem.php?problem=1132 题意: 给定n.k,求(1K + 2K + 3K + ... + NK) % 232. 题解: 设sum(i) = 1K + 2K + 3K + ... + iK 所以要从sum(1)一直推到sum(n). 所以要找出sum(i)和sum(i+1)之间的关系: 好了可以造矩阵了. (n = 6时) 矩阵表示(大小为 1 * (k+2)): 初始矩阵start: 也就是: 特殊矩…
题目链接:http://lightoj.com/volume_showproblem.php?problem=1132 题意:给出n和m.求sum(i^m)%2^32.(1<=i<=n) (1<=n<=10^15,0<=m<=50). 思路:本题有两种方法:二分和矩阵. (1)二分:设我们用DFS(n,m)来计算上面的式子.假如n为奇数,比如n=13,那么我们单独计算13^m,那么剩下的是n=12.前一半是DFS(6,m),后一半是7^m+8^m+……12^m. 进而n…
题目链接:problem=1070">LightOJ 1070 Algebraic Problem 题意:已知a+b和ab的值求a^n+b^n.结果模2^64. 思路: 1.找递推式 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""> 得到递推式之后就是矩…
UVA 11551 - Experienced Endeavour 题目链接 题意:给定一列数,每一个数相应一个变换.变换为原先数列一些位置相加起来的和,问r次变换后的序列是多少 思路:矩阵高速幂,要加的位置值为1.其余位置为0构造出矩阵,进行高速幂就可以 代码: #include <cstdio> #include <cstring> const int N = 55; int t, n, r, a[N]; struct mat { int v[N][N]; mat() {mem…
UVA10518 - How Many Calls?(矩阵高速幂) 题目链接 题目大意:给你fibonacci数列怎么求的.然后问你求f(n) = f(n - 1) + f(n - 2)须要多少次调用,而且这个数非常大,取模一个进制的数. 解题思路:要发现F(n) = 2 *f(n) - 1这个规律.预计要非常熟系fibonacci数列,我明明推出了好多项后可是一点也没有发现规律. 然后要用矩阵高速幂来求fibonacci.由于n非常大. 构造这种矩阵 1, 1 (2*2矩阵) *  f(n -…
pid=2842">题目链接 题意:求出最少步骤解出九连环. 取出第k个的条件是,k-2个已被取出,k-1个仍在支架上. 思路:想必九连环都玩过吧,事实上最少步骤就是从最后一个环開始.向前一直取出来即可了. 所以如果取出前n个环所须要的步骤为f(n),那么在此之前f(n - 2)要被取出,再加上1.即第n个环被取出,所以仅仅剩下第n-1环没被取出,那么我们将前n-2环再套上去(套上去和取下来的步骤是一样.都为f(n - 2)),所以取出n-1环的步骤为f(n - 1),因此能够得到一个递推…
pid=2276">题目链接 题意:有n盏灯.编号从1到n.他们绕成一圈,也就是说.1号灯的左边是n号灯.假设在第t秒的时候,某盏灯左边的灯是亮着的,那么就在第t+1秒的时候改变这盏灯的状态.输入m和初始灯的状态.输出m秒后,全部灯的状态. 思路:事实上每盏灯的状态之和前一盏和自己有关.所以能够得到一个关系矩阵.如果有6盏灯,因此能够得到关系矩阵例如以下:  (1, 0, 0, 0, 0, 1)  (1, 1, 0, 0, 0, 0)  (0, 1, 1, 0, 0, 0)  (0, 0,…
题目连接:uva 10655 - Contemplation! Algebra 题目大意:输入非负整数,p.q,n,求an+bn的值,当中a和b满足a+b=p,ab=q,注意a和b不一定是实数. 解题思路:定义f(n)=an+bn,则有f(n)∗(a+b)=(an+bn)∗(a+b)=an+1+abn+ban+bn+1=f(n+1)+abf(n−1), 所以f(n+1)=(a+b)f(n)−abf(n−1),用矩阵高速幂求解. #include <cstdio> #include <cs…
http://acm.hdu.edu.cn/showproblem.php?pid=3221 一晚上搞出来这么一道题..Mark. 给出这么一个程序.问funny函数调用了多少次. 我们定义数组为所求:f[1] = a,f[2] = b, f[3] = f[2]*f[3]......f[n] = f[n-1]*f[n-2].相应的值表示也可为a^1*b^0%p.a^0*b^1%p,a^1*b^1%p,.....a^fib[n-3]*b^fib[n-2]%p.即a,b的指数从n=3以后与fib数列…