aaaaaaa……aaa(n个)%p的值 (矩阵快速幂)
觉得还是有必要发日志的……否则就在题海中迷失了自己的脚步咯
题目如标题,下面是程序……不要问我矩阵是怎么想的……
1 #include <cstdio> 2 #include <cmath> 3 #include <cstring> 4 #include <cstdlib> 5 #include <queue> 6 #include <stack> 7 #include <vector> 8 #include <iostream> 9 #include "algorithm" 10 using namespace std; 11 typedef long long LL; 12 const int MAX=5; 13 LL a,n,p; 14 struct Mat{ 15 LL x,y; 16 LL mat[MAX][MAX]; 17 Mat (){ 18 x=y=0; 19 memset(mat,0,sizeof(mat)); 20 } 21 Mat operator * (const Mat &cc) { 22 int i,j,k; 23 Mat zt; 24 zt.x=x,zt.y=cc.y; 25 for (i=1;i<=zt.x;i++) 26 for (j=1;j<=cc.y;j++) 27 for (k=1;k<=cc.x;k++) 28 zt.mat[i][j]=(zt.mat[i][j]+mat[i][k]*cc.mat[k][j])%p; 29 return zt; 30 } 31 }m1,m2; 32 void init(){ 33 int i,j; 34 scanf("%lld%lld%lld",&a,&n,&p); 35 m1.x=2,m1.y=1; 36 m1.mat[1][1]=m1.mat[2][1]=a; 37 m2.x=2,m2.y=2; 38 m2.mat[1][1]=10,m2.mat[1][2]=1; 39 m2.mat[2][1]=0,m2.mat[2][2]=1; 40 } 41 Mat ksm(Mat zt,LL k){ 42 Mat an; 43 LL i,j; 44 an.x=zt.x,an.y=zt.y; 45 for (i=1;i<=an.x;i++) 46 for (j=1;j<=an.y;j++) 47 an.mat[i][j]=(i==j); 48 while (k) 49 {if (k%2==1) 50 an=an*zt; 51 zt=zt*zt; 52 k/=2; 53 } 54 return an; 55 } 56 int main(){ 57 freopen ("ksm.in","r",stdin); 58 freopen ("ksm.out","w",stdout); 59 int i,j; 60 init(); 61 m1=ksm(m2,n-1)*m1; 62 printf("%lld",m1.mat[1][1]); 63 return 0; 64 }
转载于:https://www.cnblogs.com/keximeiruguo/p/5947265.html
aaaaaaa……aaa(n个)%p的值 (矩阵快速幂)相关推荐
- nyoj 301递推求值 (矩阵+快速幂)
题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=301 题意:给你一个递推公式:f(n)=a*f(n-2)+b*f(n-1)+c 并且告诉你a, ...
- hdu 6395Sequence【矩阵快速幂】【分块】
Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total ...
- 蓝桥杯 算法提高 递推求值(矩阵快速幂)详解
传送门 问题描述 已知递推公式: F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5, F(n, 2)=F(n-1, 1) + 3F(n-3, 1) + 2F(n-3, 2) + 3 ...
- NYOJ 301 递推求值(矩阵快速幂)
递推求值 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给你一个递推公式: f(x)=a*f(x-2)+b*f(x-1)+c 并给你f(1),f(2)的值,请求出f(n ...
- HDU 2243考研路茫茫——单词情结 (AC自动机+矩阵快速幂)
背单词,始终是复习英语的重要环节.在荒废了3年大学生涯后,Lele也终于要开始背单词了. 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法.比如"ab",放在单词前一般 ...
- 浅谈矩阵 矩阵快速幂 动态dp 矩阵求逆
文章目录 1 矩阵 1.1 矩阵乘法 1.2 单位矩阵 1.3 矩阵乘法的结合律 1.4 矩阵快速幂 1.5 矩阵快速幂的应用 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 ...
- 矩阵快速幂详解--用矩阵幂解决的多种问题
最经典的题目 以及洛谷一大堆相似题斐波那契升级版,广义斐波那契等等,都是相关的题目.一般而言我们求解斐波那契无非是不断地向前迭代,但是这样的效率实在是太低了.对于nnn的规模如此之大的题目应该如何求解 ...
- 矩阵快速幂+构造方法
与快速幂一样,可以将递推式通过二进制的方式来进行优化,这个学了快速幂就是十分容易理解 大概的板子如下: struct mat///自己定义大小的矩阵 {ll m[11][11]; }; mat mul ...
- 【做题】SRM701 Div1 Hard - FibonacciStringSum——数学和式&矩阵快速幂
原文链接 https://www.cnblogs.com/cly-none/p/SRM701Div1C.html 题意:定义"Fibonacci string"为没有连续1的01串 ...
最新文章
- 数据结构--数组队列的实现
- 这款AI耳机可以主宰你的情绪,决定让你是哭还是笑
- python导入处理txt文件-python怎么处理txt
- DPDK使用linux drivers(二十九)
- 韩文版ie8 启用java_只有在启用了javascript的情况下,IE8才会在IE8模式下重新加载崩溃...
- 如何修改cmd控制台默认编码为utf-8
- mysql command line client和mysql.exe输入密码后闪退问题解决方法
- zip unzip_zip和unzip上的Java要点
- mysql windows身份验证_SQL Server 2005 怎么就不能用Windows身份验证方式登录呢?
- 数字时代的抉择,金蝶 EBC 的破局
- ElasticSearch中的集群、节点、索引、文档、类型是什么?
- MTK 驱动(62)---eMMC RPMB分区介绍
- springboot项目解决跨域的几种方式
- 对于elemnet-ui的el-upload的使用总结(移除上传文件判断,action等问题)
- 有限元计算计算机配置,有限元分析计算对电脑配置有什么要求
- android 使用ios字体大小,ios和android上的字体大小不同
- Python自动化测试详解
- 设计一个用户注册页面,对用户输入的内容进行有效性验证,如用户名和密码不能为空,两次输入的密码必须相同,邮箱地址必须包含“@”符号等。
- 集装箱式数据中心机房
- 不朽凡人 第五百二十章 有脾气冲我来
热门文章
- 寒假CF- WA了不要怕!
- Qt designer设计界面
- 安装最新Spree出现error:spree_core requires will_paginate (= 3.0.pre2, runtime)
- C语言-转义字符注意事项
- 【数字信号处理】相关函数与线性卷积关系 ( 卷积概念 | 相关函数概念 | 相关函数与线性卷积对比 | x(-m) 共轭 与 y(m) 的卷积就是两个信号 位移 m 的相关函数 )
- 【错误记录】Android Studio 编译报错 ( Gradle 下载错误导致 Failed to open zip file 报错 )
- 【Android 安全】DEX 加密 ( 阶段总结 | 主应用 | 代理 Application | Java 工具 | 代码示例 ) ★
- 【软件工程】CMMI 能力成熟度模型集成 ( 简介 | 相关术语 | CMMI 等级评估次序 )
- 【组合数学】递推方程 ( 非齐次部分是指数的情况 | 非齐次部分是指数的情况示例 )
- 在 mac OS 中安装 xgboost python 包