矩阵乘法
来源:互联网 发布:中日高铁竞争知乎 编辑:程序博客网 时间:2024/05/22 14:14
xsy2041
bzoj4002
题意:
分析:
构造数列
∵
∴
然后就可以矩乘得到
由于
因此
bzoj1875
题意:
给定一张无向图,每条路的长度都是1,没有自环,可能有重边,给定起点与终点,求从起点走t步到达终点的方案数。
每一步走的时候要求不能走上一条刚刚走的路。
分析:
这道题的思路,主要是构建矩阵的思路很巧妙。我们普通的用矩阵乘法转移是用点来转移,但是这样不能去掉在一个地方逗留的情况。
一个很神奇的做法就是用边来构图(对于一条边i,除去一条边j满足i==(j^1)的情况,与其他的边都相连)转移t-1次,然后同用与起点相连的边构造的一个矩阵(相当于系数矩阵)相乘。最后统计答案,只需将终点相连的边的答案加上即可。
bzoj2165
题意:
给定一张图,求从1开始到达m的权值至少需要遍历多少条边
分析:
从每个点出发每走一步的转移矩阵都是一样的,于是可以考虑倍增。求答案时从大到小枚举每个二进制位,更新g,若不存在从1开始长度>=m的路径,这一位就是1。
bzoj2510
题意:
有M个球,一开始每个球均有一个初始标号,标号范围为1~N且为整数,标号为i的球有ai个,并保证
每次操作等概率取出一个球(即取出每个球的概率均为
现在你需要求出,经过K次这样的操作后,每个标号的球的期望个数。
分析:
设
再弄一波矩阵快速幂。但是时间复杂度是
发现这是一个循环矩阵,只要知道第一行就可以知道整个矩阵,于是乎时间复杂度变成了
bzoj1898
题意:
给出一张无向图,这个图中有一些鱼,他们不同的时间会出现在固定的位置,呈周期性循环(周期只有2,3,4),一个人要在这个图上走,他不能和鱼同时在一个点上。问从s到t走k步有多少种方案。
分析:因为周期只有2,3,4所以12就是一个大周期,每12个时间单位内的路径转移都是一样的,于是构造出12个矩阵将它们相乘变为一个大周期。整个整个周期的就快速幂,剩下的暴力乘。
bzoj1009
题意:
阿申准备报名参加GT考试,准考证号为N位数
分析:
dp[i][j]表示考号弄到前i位时当前考号的后j位于不吉利考号的前j位相同。
题解1
题解2
bzoj2326
题意:
定义Concatenate(1,N)=1234567……n。比如Concatenate(1,10)=12345678910。给定n和m,求Concatenate(1,n)%m。
分析:
令
……
构造矩阵
注意分段矩阵运算时不能用分配率。
bzoj2476
题意:
令战场定义为可以从中间某个点向两边单调不增且不是一个长方形的柱子的序列,求周长为p的柱子有多少个。
分析:
令f[n]为周长为2n的战场数 不考虑【不是长方形】这个条件
如果一个战场左右都没有高度为1的柱子,则方案数等价于将最下方一排砍掉的方案数 即f[n-1]
如果一个战场左侧或右侧有一个高度为1的柱子,则方案数等价于砍掉这个高度为1的柱子的方案数 即2*f[n-1]
但是如果一个战场左侧和右侧都有一个高度为1的柱子,那么这个战场被上面那种情况计算了两次,要减掉 方案数是f[n-2]
故得到递推式f[n]=3*f[n-1]-f[n-2] 矩阵乘法搞出来 再减去长方形的方案数 即n-1即可。
bzoj4417 ☆☆☆☆☆
题意:
现有一个n行m列的棋盘,一只马欲从棋盘的左上角跳到右下角。每一步它向右跳奇数列,且跳到本行或相邻行。跳越期间,马不能离开棋盘。
分析:
令
将f[i][j]和g[i][j]的定义均改为原来定义的前缀和:
bzoj2126
题意:
在一个圆上均匀分布
分析:
将这
bzoj3610
bzoj1444
bzoj4180
bzoj3329
bzoj4128
循环矩阵
对于两个循环矩阵 A 与 B 来说,A + B 也是循环矩阵。AB 也是循环矩阵,并且 AB=BA。这时只要确定第一行就确定了整个矩阵。
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- Swift开发:UIAlertController 弹框
- 使用SIFT描述子计算模板旋转角度
- Eclipse通过maven构建SpringMVC项目
- 验证是否符合手机号格式
- java se 08
- 矩阵乘法
- leaflet.js +highcharts 关键代码
- android 3DES加密解密
- 多示例学习(Multiple Instance Learning)
- Java/Jsp中让数值不使用科学计数法显示的解决方案
- 深入理解Java垃圾回收机制
- websocket自动关闭,code:1006
- 处理器映射HandlerMapping
- Java的线程实现