矩阵优化
CaprYang
这个作者很懒,什么都没留下…
展开
-
DNA Sequence POJ - 2778 AC自动机 矩阵快速幂
题解 给m个长度10以内的病毒串 问长度为n的主串且不匹配任意一个病毒串的有多少个 m最大10所以节点数不超过100 利用AC自动机建图 建立邻接矩阵表示从节点i到节点j能转移的字符数量 除去字符结束节点和fail指针路径上是结束节点 通过N个邻接矩阵相乘即可得到i到j走N步的方案数 将0到i求和即为答案 因为N过大需要用矩阵快速幂求解 AC代码 #include <stdio.h> ...原创 2018-10-25 23:44:54 · 400 阅读 · 0 评论 -
Educational Codeforces Round 60 (Rated for Div. 2) D. Magic Gems 矩阵优化
题解 题目大意,问单个的1与长度为m的0能组成多少个长度为n的序列,1和0有无限多个。 暴力打表发现当m等于2时候与斐波那契数列相同,其它情况为f[n] = f[n - 1] + f[n - m],递推式很简单但是n很大直接递推超时。 使用矩阵优化进行转移复杂度O(m^3*logn) AC代码 #include <stdio.h> #include <bits/stdc++.h&...原创 2019-02-21 22:22:57 · 263 阅读 · 0 评论 -
迷路 HYSBZ - 1297 dp 矩阵优化
题解 由于所求时间t过大不能采用直接递推的方式,使用矩阵快速幂来加快递推速度复杂度降低为O((n*10)^3logt) 令d[code(i, j)]表示i秒前j节点的方案数,最多存储10秒,code为编码函数 定义转移矩阵tran,因为每次乘上转移矩阵要将当前时间后推1秒所以tran[code(i, j)][code(i + 1. j)]=1表示每个节点由当前时间转移到下一秒的时间,i表示时间j表...原创 2019-02-17 19:54:13 · 679 阅读 · 0 评论 -
Codeforces Round #553 (Div. 2) 题解
题目链接 A. Maxim and Biology 取连续一段改为ACTG的最小代价 #include <stdio.h> #include <bits/stdc++.h> #define fst first #define sed second using namespace std; typedef long long ll; const int INF = 0x3f...原创 2019-04-20 23:12:59 · 1060 阅读 · 2 评论 -
河南省第九届ACM程序设计竞赛 部分题解
A 表达式求值 <逆波兰> #include <stdio.h> #include <bits/stdc++.h> #define fst first #define sed second using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const ll LINF =...原创 2019-04-21 14:14:21 · 1206 阅读 · 0 评论