自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

galiqing的博客

即便如此,人们啊。获得幸福吧!只是,心怀幸福和爱活下去吧!

  • 博客(9)
  • 收藏
  • 关注

原创 [caioj 1487及vijos 1194,利用矩阵乘法解决的经典题目九]有趣的domino

问用1*2的多米诺骨牌填满m*n的矩阵有多少种方案,结果需要mod p。 这道题看上去跟矩阵乘法八竿子都打不着边,但是我们可以转换模型。其实我们可以将这个m*n矩阵的状态通过位运算转换成二进制状态,具体就是先假设i是前一个状态,而j是这一个状态,那么i状态到j状态的条件就是i or j=k 且 i and j=s[x] (0<=x<8),s[]={0,3,6,12,15,24,27,30};为什么这

2017-08-26 16:55:18 1818

原创 [caioj 1486及hdu 2157,利用矩阵乘法解决的经典题目八]多少条路呢??

给定一个有向图,有n个点,m条边。求A点到B点恰好经过k条边的方案数(可走重复边)。 这道题表面上是dp,dfs什么的,但实际上是一道矩阵乘法加快速幂的裸题。为什么呢,其实是因为矩阵乘法它那相乘的特殊。首先

2017-08-25 12:34:43 480

原创 [caioj 1485及vijos 1067,利用矩阵乘法解决的经典题目七]童年的走格子

有n个格子,从入口出发(注意,入口不是第一个格子,要另外计算),需要走到最后一个格子(即出口,第n个格子)。每走一步可选择走过1~k个格子,求能走到出口的方案数。 这道题的主体算法是递推,但是需要矩阵乘法优化。递推公式很简单,就是f[0]=1,f[i]=f[i-1]+f[i-2]+…+f[i-k],看到这种题,应马上想到矩阵优化,因为每次递推的公式是不变的。我们可以先求出f[1],f[2]…,

2017-08-24 12:53:50 1085

原创 [caioj 1484及Luogu P1962,利用矩阵乘法解决的经典题目六]Fibonacci数列

给定n,求第n个Fibonacci数mod 10^9+7的值。 这道题如果看到了数据范围,就知道了不只模拟那么简单。不错,这题要用矩阵乘法及快速幂,其实这题感觉最大的重点就是构建矩阵,但也挺好推,结果矩阵就是这样{0,1}{1,1}。为什么呢,因为{0,1}{1,1}*{f1}{f2}=(f2}{f3(f1+f2)}(两个相邻括号之间有空行)。最后只要用结果矩阵平方n次,再乘{f0(0)}{f1(1

2017-08-22 11:51:25 349

原创 [caioj 1483,利用矩阵乘法解决的经典题目五]成群的细菌

n个培养皿排成一个圈,每个里面都有一些细菌。培养皿逆时针编号为1,2,…,n,第i个培养皿里有a[i]个细菌。细菌不停地活动着,它们有可能会进行六种操作: d i 0,表示第i个培养皿的所有细菌都死亡。 r i k,表示第i个培养皿的每个细菌分裂成k个。 c i j,表示把第j个培养皿的所有细菌复制到第i个培养皿。 t i j,表示把第j个培养皿的所有细菌转移到第i

2017-08-19 11:35:00 453

原创 [caioj 1482及vijos 1049,利用矩阵乘法解决的经典题目四]序列无限变

有n个数,也就是说初始序列为1,2,3…n;m种置换方式(有m行),每行有n个数字,这些数字互不相同而且每个数字都在1到n之间。置换操作方式为设这一行操作的第i个数字为a[i],那么就把原来序列中的第a[i]个数放到这个序列的第i的位置上,然后组成新的序列。从第一种置换方式开始操作,一直到最后一种操作,重复上面的操作方式。当最后一种操作结束后,组成了的序列又按照第一种来操作,一直循环下去,直到一共操

2017-08-18 11:29:06 498

原创 [caioj 1481及poj 3233,利用矩阵乘法解决的经典题目三]矩阵幂级数

给定一个n行n列的矩阵A,求A+A^2+A^3+…+A^k的结果,并且输出的每个数都mod m。 这道题非常经典,因为它需要两次快速幂,为什么?首先A^i我们当然可以求出来,可以用快速幂,但如果计算k次就会超时。所以我们要再进行一次,举个例子,A+A^2+A^3+…+A^6,可以转化成A+A^2+A^3+A^3(A+A^2+A^3),这样就可以先二分算出(A+A^2+A^3),然后再乘A^3,便可以

2017-08-16 11:36:44 1080

原创 [caioj 1480,利用矩阵乘法解决的经典题目二]矩阵无限方

给定一个n行n列的矩阵A,求出A^x的结果,输出的每个数都mod 10^9+7。 这道题是矩阵乘法加快速幂的模板题。如果暴力的话,就会超时,时间复杂度为O(x)。所以我们就在矩阵乘法的基础上引入了快速幂,时间复杂度就会大大降低。接下来重点讲一下矩阵乘法的快速幂,首先需要大家弄明白数字的快速幂,然后看一下伪代码的图片,大约就能弄明白矩阵的快速幂了。 这题弄明白快速幂后,就很简单了。#includ

2017-08-15 11:32:57 441

原创 [caioj 1479,利用矩阵乘法解决的经典题目一]点的变换

给定n(n<=10000)个点,m次操作,所有点的坐标都是已知的,现在可能对n个点做以下几种操作: 平移一定距离(M),相对X轴上下翻转(X),相对Y轴左右翻转(Y),坐标缩小或放大一定的倍数(S),所有点对坐标原点逆时针旋转一定角度(R)。 操作的次数不超过1000000次,求最终所有点的坐标。 这道题最主要的算法是矩阵乘法,这些操作都可以转换成一个3*3的矩阵。转换后,首先先将总的操

2017-08-14 11:40:29 505

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除