(1)问题:给定一个n*n的方阵(2 <= n <= 10),计算这个矩阵的k次方的迹(2 <= k <= 1000000000)模9973
(2)要点:无
(1)问题:给定两个n*n矩阵(1<= n <= 800),计算这两个矩阵的乘积,模3
(2)要点:将初始矩阵模3之后会有比较多的0元素,有利于提供矩阵的乘法运算的效率
(1)问题:给定数列的递推表达式f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10),计算f(k)%m
(2)要点:无
(1)问题:长度为l(0 <= l <= 1000000)的由'm','f'构成的字符串中不包含'fff','fmf'子串的不同字符串的个数模m(1 <= m <= 30)的值
(2)要点:count[k][ff] = count[k-1][mf]、count[k][fm] = count[k-1][ff] + count[k-1][mf]、count[k][mf] = count[k-1][mm]、count[k][mm] = count[k-1][mm] + count[k-1][fm]
(1)问题:n个硬币,存在连续3个以上(包括3个)的硬币是相同状态称为幸运硬币序列,问不同的幸运硬币序列的个数是多少(模10007)
(2)要点:只要求出非幸运序列,递推公式F(n+1,00) = F(n,10),F(n+1,01) = F(n,00) + F(n,10),F(n+1,10) = F(n,01) + F(n,11),F(n+1,11) = F(n,01)
(1)问题:计算(5+2*sqrt(6))^n的整数部分
(2)要点:(5+2*sqrt(6))^n + (5-2*sqrt(6))^n是数列a[n] = 10*a[n-1] - a[n-2],a[0] = 2,a[1] = 10的通项,且(5+2*sqrt(6))^n的整数部分即为a[n] - 1
(1)问题:给定一个环形的n个(2<=n<=100)灯的初始状态,每一秒如果某个灯的左边是开的,则这个灯改变状态,问经过m秒(1<=m<=100000000)后各个灯的状态
(2)要点:在模2域上进行运算
(1)问题:已知a[n] = 2*a[2]*a[n-1]-a[n-2],计算(a[1]^2 + a[2]^2 + ... + a[n]^2)(mod m)
(2)要点:所求为T(n),H(n) = a[1]*a[2] + ... + a[n-1]*a[n],则T(n)和H(n)可以用T(n-1),T(n-2),H(n-1)表示,需要进行代码层次的优化
(3)参考代码:http://www.cnblogs.com/staginner/archive/2012/04/26/2471617.html
(1)问题:f(n)为Fibonacci数列,g(i)=ki+b,求f(g(i))的和(1 <= i <= n)
(2)要点:f(-1)= 1,f(0) = 0,f(n) = A^n[0][1],因此所求实际上是A^b+A^(k+b)+...+A^(k*n+b)的(0,1)元素
(1)问题:给定多个城市(最多30个)之间的道路的信息,不能在一个城市停留,问从v1城市到v2到的路径长度为[t1,t2]的不同方案数是多少(mod 2008)
(2)要点:30个城市的的代号不一定就是0~31,所以需要做离散化;所求实际上是A^t1 +A^(t1+1) + ... + A^t2的(iv1,iv2)元素
(1)问题:给定一个26*26的字母转换概率表,和一个单词列表,单词表最多有1000000000个单词,问初始字符串(1 <= 长度 <= 3)经过正好k次(1 <= k <= 1000000000)转换后的字符串位于单词表中的概率
(2)要点:需要注意单词表中的单词可能相同
(3)参考代码:http://www.codechef.com/viewsolution/5439182