仍然是与2 分法有关的算法:(很多O(logN)的算法都是二分法啊。。。) 但快速幂有个前题,就是数据类型必须满足结合律 定义个矩阵类,重载下运算符使其满足结合律:
分类:
其他好文 时间:
2016-03-18 21:40:43
阅读次数:
174
矩阵快速幂:http://www.cnblogs.com/atmacmer/p/5184736.html 题目链接 #include #include using namespace std; typedef long long ll; #define MOD 10000 ll a[7],b[7],...
分类:
其他好文 时间:
2016-03-17 01:55:40
阅读次数:
163
http://acm.hdu.edu.cn/showproblem.php?pid=5434 状压dp+矩阵快速幂。 做了好几天,终于敲出来了!。。 详细题解,明天补充,先睡为敬>
分类:
其他好文 时间:
2016-03-16 07:08:41
阅读次数:
189
http://poj.org/problem?id=3070 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn ? 1 + Fn ? 2 for n ≥ 2. For example, the
分类:
其他好文 时间:
2016-03-15 18:32:29
阅读次数:
184
题目链接:http://poj.org/problem?id=3233;
题意:给出一个公式求这个式子模m的解;
分析:本题就是给的矩阵,所以很显然是矩阵快速幂,但有一点,本题k的值非常大,所以要用二分求和来减少运行时间。
代码:#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2016-03-14 18:58:08
阅读次数:
225
问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出
分类:
其他好文 时间:
2016-03-12 13:07:17
阅读次数:
204
题目链接 n个灯围成一圈, 1左边是n。 有两种状态, 1是亮, 0是不亮。 如果一个灯, 它左边的灯是亮的, 那么下一时刻这个灯就要改变状态, 1变为0, 0变为1。 给出初始状态和时间t, 问t时刻每个灯的状态是什么。 ai = (a(i-1)+ai)%2, 根据这个构建矩阵。 /* 1 0 0
分类:
其他好文 时间:
2016-03-12 10:19:41
阅读次数:
151
在遇到一些递推式时,如果我们直接按公式一步步进行运算,效率较低。构造矩阵进行快速运算,可以高效地解决这个问题。 以int型方阵为例: 矩阵结构: struct Mat{ int mat[n][n]; }; 矩阵乘法: Mat mul(Mat a,Mat b) { Mat ret; memset(re
分类:
其他好文 时间:
2016-03-10 00:06:29
阅读次数:
176
矩阵快速幂+构造。 首先我们要计算出需要构造的矩阵大小是多少,这个可以构造矩阵,进行矩阵快速幂求得。 S[n]就是求得的矩阵大小。 接下来就是构造答案了:如果S[n]是奇数或者0,显然无解。 偶数的话,可以构造答案,下面以6*6为例: 下三角全是-1,上三角全是1,对角线上-1与0间隔填写。 #in
分类:
其他好文 时间:
2016-03-09 18:59:52
阅读次数:
191
矩阵快速幂。 样例是这样构造矩阵的: 矩阵很好构造,但是500*500*500*logk的复杂度显然是无法通过这题的。 其实本题构造出来的矩阵是一个循环矩阵,只需直到第一行或者第一列,即可直到整个矩阵是怎么样的。 所以,中间计算的时候,需要直到第一行是什么即可,即1*n的矩阵乘n*n的矩阵。时间复杂
分类:
其他好文 时间:
2016-03-09 15:36:07
阅读次数:
151