题目链接
题意:有n盏灯,编号从1到n。他们绕成一圈,也就是说,1号灯的左边是n号灯。如果在第t秒的时候,某盏灯左边的灯是亮着的,那么就在第t+1秒的时候改变这盏灯的状态。输入m和初始灯的状态。输出m秒后,所有灯的状态。
思路:其实每盏灯的状态之和前一盏和自己有关,所以可以得到一个关系矩阵。假设有6盏灯,因此可以得到关系矩阵如下:
(1, 0, 0, 0, 0, 1)...
分类:
其他好文 时间:
2014-09-03 00:19:25
阅读次数:
324
题目链接
题意:有个高富帅,要送个很装逼的吊坠给他女朋友。他有k种珠子,然后要串成一个珠子个数小于等于n 的链子(k种珠子都必须要用到)。输入n和k,输出他可以做出多少种不一样的项链。
思路:可以想到递推式f(x, y) = f(x – 1, y) * y + f(x – 1, y – 1) * (k – y + 1)(表示x个珠子用了y种类型),因为n过大,无法直接用求出...
分类:
其他好文 时间:
2014-09-02 17:56:35
阅读次数:
137
poj 3070Fibonaccihttp://poj.org/problem?id=3070模板题,矩阵都给你写好了。 1 #include 2 #include 3 #define mt(a,b) memset(a,b,sizeof(a)) 4 class Matrix { ///矩阵 5 .....
分类:
其他好文 时间:
2014-09-01 22:20:53
阅读次数:
335
Consider recurrent functions ofthe following form:
f(n) = a1 f(n - 1) + a2 f(n - 2) + a3 f(n -3) + ... + ad f(n - d), for n > d.
a1, a2, ..., ad - arbitrary constants.
A famous example is the Fib...
分类:
其他好文 时间:
2014-09-01 17:46:43
阅读次数:
157
不知道哪里错了,测试了几十组数据均正确。。。可以找出规律,指数的增长是兔子数列。这个数列,是可以用矩阵快速幂得到的,见POJ 3070然后,竟然有一条公式:A^B%C = A^(B%phi(C)+phi(C))%C然后就可以求解了#include #include #include #include...
分类:
其他好文 时间:
2014-08-31 21:25:21
阅读次数:
195
题目链接
题意:斐波那契数列,当长度大于8时,要输出前四位和后四位
思路:后四位很简单,矩阵快速幂取模,难度在于前四位的求解。
已知斐波那契数列的通项公式:f(n) = (1 / sqrt(5)) * (((1 + sqrt(5)) / 2) ^ n - ((1 + sqrt(5)) / 2) ^ n),当n >= 40时((1 + sqrt(5)) / 2) ^ n近...
分类:
其他好文 时间:
2014-08-30 15:11:21
阅读次数:
288
题目链接
题意:求出f(k) % m
思路:f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10),所以可以得到一个矩阵
(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
(1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
(0, 1, 0, ...
分类:
其他好文 时间:
2014-08-30 12:42:49
阅读次数:
226
题目链接
题意:A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。
思路:简单的矩阵快速幂
代码:
#include
#include
#include
#include
#include
using namespace std;
//typedef long long ll;
typedef __int...
分类:
其他好文 时间:
2014-08-30 00:03:08
阅读次数:
274
题目链接
题意:求第n个斐波那契数的递归次数MOD b
思路:用矩阵快速幂求斐波那契数列,然后打表找出递归次数的规律为f(n) = 2 * F(n) - 1(F(n)为斐波那契数)。
代码:
#include
#include
#include
#include
#include
typedef long long ll;
using namespace...
分类:
其他好文 时间:
2014-08-28 21:14:46
阅读次数:
270
题目链接
题意:给出n和m,求出f(n) % m, f(x)为斐波那契数列。
思路:因为n挺大的,如果直接利用公式计算很有可能会TLE,所以利用矩阵快速幂求解,|(1, 1), (1, 0)| * |f(n - 1), f(n - 2)| = |f(n), f(n - 1)|,所以求f(n)相当于|f(1), f(0)|乘上n - 1次的|(1, 1), (1, 0)|。
...
分类:
其他好文 时间:
2014-08-28 16:57:40
阅读次数:
187