传送门:https://www.luogu.org/problemnew/show/P5004


分析

动态规划转移方程是这样的\(f[i]=\sum^{i-m-1}_{j=0}f[j]\)。
那么很明显的是要构造举证,而且要维护前缀和,所以需要保留\(m+1\)项。

ac代码

#include <bits/stdc++.h>
#define ll long long
#define ms(a, b) memset(a, b, sizeof(a))
#define inf 0x3f3f3f3f
#define N 25
#define mod ((int)1e9 + 7)
using namespace std;
template <typename T>
inline void read(T &x) {x = 0; T fl = 1;char ch = 0;while (ch < '0' || ch > '9') {if (ch == '-') fl = -1;ch = getchar();}while (ch >= '0' && ch <= '9') {x = (x << 1) + (x << 3) + (ch ^ 48);ch = getchar();}x *= fl;
}
ll n;
int m;
struct Matrix {int a[N][N], x, y;void init() {memset(a, 0, sizeof(a));x = y = 0;}Matrix operator *(const Matrix &rhs) const{Matrix res; res.init();res.x = x, res.y = rhs.y;int c = y;for (int i = 1; i <= x; i ++) {for (int j = 1; j <= y; j ++) {for (int k = 1; k <= c; k ++) {res.a[i][j] = (res.a[i][j] + (ll) a[i][k] * rhs.a[k][j]) % mod;}}}return res;}Matrix power(Matrix a, ll b) {Matrix res; res.init();res.x = res.y = a.x;for (int i = 1; i <= res.x; i ++) res.a[i][i] = 1;for (; b; b >>= 1) {if (b & 1) res = res * a;a = a * a;}return res;}
}a, b;
int main() {read(n); read(m);if (n <= m) {printf("%lld\n", n + 1);return 0;}a.x = a.y = m + 2, b.x = m + 2, b.y = 1;for (int i = 2; i <= m + 2; i ++) b.a[i][1] = 1;b.a[1][1] = m + 1;a.a[1][1] = a.a[1][2] = 1;a.a[2][2] = a.a[2][m + 2] = 1;for (int i = 3; i <= m + 2; i ++) a.a[i][i - 1] = 1;a = a.power(a, n - m);b = a * b;printf("%d\n", b.a[1][1]);return 0;
}

转载于:https://www.cnblogs.com/chhokmah/p/10568032.html

[luogu5004]专心OI - 跳房子【矩阵加速+动态规划】相关推荐

  1. 【LuoguP5004】 专心OI - 跳房子

    首先这是一道计数类DP,那我们得先推式子,经过瞎掰乱凑,经过认真分析,我们可以得到这样的方程 F(N)=F(0)+F(1)+....+F(N-M-1) 所有F初值为1,F(1)=2 ANS=F(N+M ...

  2. ZZH与计数(矩阵加速,动态规划,记忆化搜索)

    题面 因为出题人水平很高,所以这场比赛的题水平都很高. ZZH 喜欢计数. ZZH 有很多的数,经过统计,ZZH一共有 v0v_0v0​ 个 0 ,v1v_1v1​ 个 1,-,v2n−1v_{2^n ...

  3. [CQOI2018] 交错序列(矩阵加速优化dp)

    problem luogu-P4456 solution 预处理阶乘和阶乘的逆元,枚举 111 出现次数 iii,∑(n−i+1i)(n−i)aib\sum\binom{n-i+1}{i}(n-i)^ ...

  4. 线性代数四之动态DP(广义矩阵加速)——Can you answer these queries III,保卫王国

    动态DP--广义矩阵加速 SP1716 GSS3 - Can you answer these queries III description solution code [NOIP2018 提高组] ...

  5. 线性代数三之状压DP的矩阵加速——Quad Tiling,Bus公交线路

    状压与矩阵加速的藕断丝连 Quad Tiling description solution code [Hnoi2010]Bus 公交线路 description solution code Quad ...

  6. 线性代数二之矩阵加速DP——数学作业,Arc of Dream

    矩阵加速 数学作业 description solution code Arc of Dream description solution code 数学作业 description solution ...

  7. 【codevs2304】【BZOJ1875】HH去散步,第一次的矩阵加速DP

    传送门1 传送门2 写在前面:今天冒傻气 思路:我第一眼没有看出来它是个矩阵乘法加速DP,只觉得如果这个t小点就直接广搜可以了,后来发现网上的题解无一例外都是矩阵快速幂的时候,我的表情 后来看了看黄学 ...

  8. 矩阵快速幂(矩阵加速)

    //南昌理工ACM集训队 放心食用 矩阵加速 快速幂(前置技能) 矩阵快速幂 可乐 附个模板 最后小结 本人小白如有不对欢迎指正ლ(╹◡╹ლ) 矩阵加速 快速幂(前置技能) 对于普通的求a的b次方,一 ...

  9. 【AC自动机】【矩阵加速】BZOJ4861魔法咒语

    分析: 巨恶心的一题双代码题. 对于前半部分,把禁止出现的字符串建一颗AC自动机. 然后枚举每个位置用了某个模板串后转移到哪里. 然后直接DP即可. 但是对于后半部分数据,则必须写一个矩阵加速... ...

最新文章

  1. android listview数据动态加载_Android | Tangram动态页面之路(六)数据分离
  2. SSM整合之XML方式,与配置事务,拦截器,异常处理,PageHelper分页插件整合
  3. BZOJ.4516.[SDOI2016]生成魔咒(后缀自动机 map)
  4. Codeforces 446C. DZY Loves Fibonacci Numbers【斐波那契+线段树】
  5. python查看继承方法(一分钟读懂)
  6. 编写高质量JavaScript代码绳之以法(The Essentials of Writing High Quality JavaScript)翻译...
  7. 笔记-配置博客园客户端代码高亮(2016.08.20)
  8. Codeforces Round #224 (Div. 2): C. Arithmetic Progression(模拟)
  9. html渐变编织背景,CSS hover背景/文字渐变效果
  10. Gentoo虚拟机安装教程
  11. 云夜卡社区源码v4.2 带总控
  12. The signing key‘s size is 1024 bits which is not secure enough for the RS256 algorithm.
  13. 在VIVADO上实现的非常简易的RISC-V CPU设计(来自《Verilog数字系统设计》夏宇闻著)
  14. 如何批量新建文件夹,批量新建文件夹并命名
  15. 《请停止无效的努力》读书笔记
  16. java毕业设计——基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码)——俄罗斯方块游戏
  17. 数据结构实践(有的数据结构课后习题答案),红色是答案
  18. 《量化炼金术-中低频量化交易策略研发》读书笔记-序言,引言
  19. c语言中找不到EXE,windows找不到文件c:\windows\system32\msdt.exe如何解决
  20. MySQL基础(四)运算符

热门文章

  1. 编程软件python下载怎么读-使用最方便的计算机编程软件,Python下载使用完美教程...
  2. 自学python的书籍逐级推荐-适合初学者和经验的十大最佳Python书籍-2018
  3. python新手教程 从零开始-让你从零开始学会写爬虫的5个教程(Python)
  4. python语言中文社区-python中用中文
  5. python基本语法语句-第二章 python基本语法元素
  6. 0基础学python难吗-0基础学武汉Python开发课程有多难?该怎么入门?
  7. python用中文怎么说-如何实现python设置中文界面?
  8. 想学python从哪里入手-想要学习python,如何入手学习?
  9. python处理excel表格实例-python2 对excel表格操作完整示例
  10. python中文读音ndarray-Python Numpy 控制台完全输出ndarray的实现