题目链接

题意 :给你m和k, 让你求f(k)%m。如果k<10,f(k) = k,否则 f(k) = a0 * f(k-1) + a1 * f(k-2) + a2 * f(k-3) + …… + a9 * f(k-10);
思路 :先具体介绍一下矩阵快速幂吧,刚好刚刚整理了网上的资料。可以先了解一下这个是干嘛的,怎么用。

这个怎么弄出来的我就不说了,直接看链接吧,这实在不是我强项,点这儿这儿也行

 //HDU 1757
#include <iostream>
#include <stdio.h> using namespace std; struct matrix
{
int m[][] ;
} b,tp,res,init ; int n,m ; matrix Mul(matrix a,matrix b)
{
matrix c ;
for(int i = ; i < ; i++)
{
for(int j = ; j < ; j++)
{
c.m[i][j] = ;
for(int k = ; k < ; k++)
{
c.m[i][j] += (a.m[i][k] * b.m[k][j]) % m ;
c.m[i][j] %= m ;
}
}
}
return c ;
} matrix matrix_mi(matrix p,int k)
{
matrix t = res;
for(int i = ; i <= ; i++) t.m[i][i] = ;
while(k)
{
if(k & )
t = Mul(t,p) ;
k >>= ;
p = Mul(p,p) ;
}
return t ;
} void Init()
{
for(int i = ; i < ; i++)
for(int j = ; j < ; j++)
if(i- == j)
init.m[i][j]=;
else
init.m[i][j]=;
}
int main()
{
Init() ;
while(~scanf("%d %d",&n,&m))
{
b = init ;
for(int i = ; i < ; i++)
scanf("%d",&b.m[][i]) ;
for(int i = ; i < ; i++)
for(int j = ; j < ; j++)
if(i==j)
res.m[i][j] = ;
else
res.m[i][j] = ;
if(n >= )
{
int sum = ;
tp = matrix_mi(b,n-) ;
for(int i = ; i < ; i++)
sum += (tp.m[][i] * (-i))%m ;
printf("%d\n",sum%m) ;
}
else printf("%d\n",n%m) ;
}
return ;
}

最新文章

  1. 对于一个div下两个横内元素对其或者居中的方法
  2. 【web开发 | 移动APP开发】 Web 移动开发指南(2017.01.05更新)
  3. 【iOS 单例设计模式】底层解析与运用
  4. [Template]高精度模板
  5. 队列-java代码
  6. Working With Taxonomy Field in CSOM
  7. linux 查看cpu 内存 硬盘 文件夹大小
  8. C++语法报错收集
  9. winform —— 连接数据库SQL Server 2008
  10. ECSHOP 模版文件里的编辑区域
  11. \classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)
  12. LCT学习笔记
  13. 关于dom4j解析xml
  14. spring Boot+spring Cloud实现微服务详细教程第二篇
  15. pycharm 中 django 导入静态文件不提示补全
  16. CF 552(div 3) E Two Teams 线段树,模拟链表
  17. python mysql安装&amp;&amp;简单基础sql
  18. 7.6 GRASP原则六: 多态 Polymorphism
  19. 纯css实现不同方向的三角形
  20. k8s集群之上游dns--dnsmasq,统一管理kubernetes的dns解析

热门文章

  1. block的动态传值例子
  2. C++函数模板本质-学习入门
  3. Hadoop示例程序WordCount编译运行
  4. 【转】Windows Phone 调整屏幕亮度的简单实现
  5. MAF+WPF实现插件式应用程序框架
  6. Review PHP设计模式之——注册模式
  7. psp系统需求分析
  8. Nginx简单性能调优
  9. iOS6 以上设置文本高度,行高(转)
  10. Python拷贝及多进程与类的问题