矩阵
Bahuia
软件工程博士
展开
-
CF - 718C 线段树+矩阵
题意: 给出n个数a1到an,还有m次操作,操作分为两种类型,一种给下标属于[l,r]的所有ai+x,另一种操作是询问F(a[l])+F(a[l+1])+...+F(a[r]),其中F(i)表示斐波那契数列的第i项。 思路: 求斐波那契数列通常会想到矩阵。可以发现: 根据上面的递推式,可以用线段树维护这一段区间[l,r]中的F(a[i])的和以及F(a[i]-1原创 2016-11-10 16:09:42 · 688 阅读 · 0 评论 -
51Nod - 1126 矩阵水题
题意: 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值。 Input 输入3个数:A,B,N。数字之间用空格分割。(-10000 Output 输出f(n)的值。 Input示例 3 -1 5 O原创 2016-12-30 16:36:48 · 475 阅读 · 0 评论 -
HDU 5950 矩阵快速幂
题意:给一个递推公式 f(i) = f(i-1) + f(i-2) + i^4,求第n项的值。思路:根据递推公式构造矩阵,并且利用快速幂计算结果。算一算矩阵就出来了。代码:#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll MOD = 2147493647;struct mat{ ll p[原创 2016-11-06 19:27:30 · 424 阅读 · 0 评论 -
HDU 6155 dp+矩阵+线段树
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6155 给出一个长度为n的01序列以及Q个操作,操作分两类,一种是将[L,R]内的01序列翻转,二是求出[L,R]中包含多少不同的子序列。思路:对于01序列,设dp[i][j]表示到前i个字符为止,末尾字符为j的子序列个种类数,可以很容易得到状态转移方程: 当str[i]==’0’时: dp[原创 2017-08-30 20:23:17 · 464 阅读 · 0 评论