随笔分类 -  数学 - 矩阵乘法

摘要:题目大意:给定一个长度为 N 的字符串,定义一个字串是“好的”,当且仅当字串中含有一个 “2017” 的子序列,且不含有 “2016” 的子序列。现给出 M 个询问,每次询问区间 [l, r] 内至少删去多少个字符才能使得该区间变成“好的”。 题解: 由于题目中要求的是子序列,且序列长度仅为 4,考 阅读全文
posted @ 2019-09-10 20:33 shellpicker 阅读(233) 评论(0) 推荐(0)
摘要:题目大意:给定一个 N 个点,M 条边的有向图,现有 Q 个询问,每次询问 X 到 Y 的最小密度路径是多少。最小密度路径的定义是路径长度除以路径边数。 题解:利用矩阵乘法,可以预处理出从 X 到 Y 恰好经过 K 条边的最短路是多少。对于每次询问,直接处理处理即可,时间复杂度为 $O(n^4)$。 阅读全文
posted @ 2019-05-06 12:04 shellpicker 阅读(294) 评论(0) 推荐(0)
摘要:代码如下 cpp include using namespace std; const int mod=1e9+7; typedef long long LL; int n; void mulself(int a[3][3],int b[3][3]){ int c[3][3]={0}; for(in 阅读全文
posted @ 2019-05-06 10:23 shellpicker 阅读(191) 评论(0) 推荐(0)
摘要:单位矩阵相当于普通乘法算术中的单位元。 代码如下 cpp include using namespace std; const int mod = 1e9 + 7; const int maxn = 110; typedef long long LL; struct matrix { LL mat[ 阅读全文
posted @ 2019-03-28 19:48 shellpicker 阅读(116) 评论(0) 推荐(0)
摘要:题目大意:给定一个 N 个顶点,M 条边的无向图,求从起点到终点恰好经过 K 个点的最短路。 题解:设 $d[1][i][j]$ 表示恰好经过一条边 i,j 两点的最短路,那么有 $d[r+m][i][j]=min\{d[r][i][k]+d[m][k][j] \}$,等价于矩阵乘法。 这道题 K 阅读全文
posted @ 2018-11-18 21:31 shellpicker 阅读(162) 评论(0) 推荐(0)