f(n)=a^f(n-1) + b^f(n-2):计算矩阵部分用矩阵快速幂;计算a的幂次和b的幂次用快速幂。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const int maxx=2;
const ll mod=1e9+7;
ll a,b,n;
struct mt{ll p[maxx][maxx];
}ans,res;
mt mutil(mt a,mt b){mt temp;for(int i=0;i<2;i++){for(int j=0;j<2;j++){temp.p[i][j]=0;}}for(int i=0;i<2;i++){for(int j=0;j<2;j++){for(int k=0;k<2;k++){temp.p[i][j]+=a.p[i][k]*b.p[k][j];temp.p[i][j]%=(mod-1);}}}return temp;
}
void pow_mt(mt res,ll n){//矩阵快速幂mt temp=res;for(int i=0;i<2;i++){for(int j=0;j<2;j++){if(i==j){ans.p[i][j]=1;}else{ans.p[i][j]=0;}}}while(n){if(n&1){ans=mutil(ans,temp);}n>>=1;temp=mutil(temp,temp);}
}
ll quick_pow(ll a,ll b){//快速幂ll ans=1;while(b){if(b&1){ans=(ans*a)%mod;}b>>=1;a=(a*a)%mod;}return ans;
}
int main(){res.p[0][0]=0;res.p[0][1]=1;res.p[1][0]=1;res.p[1][1]=1;while(cin>>a>>b>>n){pow_mt(res,n);ll ans3=quick_pow(a,ans.p[0][0])*quick_pow(b,ans.p[1][0])%mod;cout<<ans3<<endl;}return 0;
}

HDU4549(矩阵快速幂+快速幂)相关推荐

  1. 【牛客每日一题】4.16 逆序对 ( 数学 , 排列组合 ,快速幂 , 快速乘 )

    [每日一题]逆序对 链接:https://ac.nowcoder.com/acm/problem/14731 来源:牛客网 题目描述 求所有长度为n的01串中满足如下条件的二元组个数: 设第i位和第j ...

  2. 快速幂----快速求解底数的n次幂

    目录 一.快速幂 1.问题的引入 2.快速幂的介绍 3.核心思想 4.代码实现 二.Pow(x, n) 1.题目描述 2.问题分析 3.代码实现 三.猴子碰撞的方法数 1.题目描述 2.问题分析 3. ...

  3. 矩阵乘法的实现(一般形式及单个矩阵的n次幂)

    目录 一般矩阵乘法实现 矩阵的n次幂的实现 一般矩阵乘法实现 题目描述1 给定m×k的布尔矩阵A,和k×n的布尔矩阵B,求布尔矩阵的乘积AB. 源代码1 #include<stdio.h> ...

  4. 判断一个无符号整数是不是2的n次幂的幂

    C版本: #include<stdio.h> unsigned int f2(int n); //判断无符号整数d是不是[2的n次幂]的幂,并指出该数[d]是[2的n次幂]的多少(e)次幂 ...

  5. 独家揭秘:快速排名快速暴利的黑 帽seo

    导读:这篇文章如果加一个气势磅礴的开头就完美了,这么好的文章却不适合在行业大站上发布,可惜了,作者黑 帽客雅皮士向大家普及了当今SEO行业的灰色地带:黑 客与黑 帽SEO,让大家了解不为人知的SEO另 ...

  6. C#:实现快速划分/快速分割算法(附完整源码)

    C#:实现快速划分/快速分割算法 int QuickPartition(int[] array, int left, int right, bool isAscend = true) {

  7. 算法提高课-数学知识-矩阵乘法-AcWing 1303. 斐波那契前 n 项和:矩阵乘法,快速幂,线性代数

    题目分析 来源:acwing 分析: 先利用矩阵运算的性质将通项公式变成幂次形式,然后用快速幂的方法求解第 n项. 斐波那契数列的递推公式:f1=f2=1,fn=fn−2+fn−1(n≥3)f_1 = ...

  8. 矩阵乘法和快速幂的一些优化和剪枝

    矩阵相乘 一般会用O(n^3)的方法...配合剪枝[添条件,设门槛...] //O(n^3)算法 #include <iostream> #include <cstdio> # ...

  9. HDU 4365 正方形格子涂色中心对称轴对称的涂法有多少种-思维-(矩阵坐标关系快速幂取模)

    题意:n*n的格子,涂色,有k种颜料,必须满足旋转任意个90度和翻转之后图片的样子不变,现在已经有m个格子涂过色了,问还有多少种涂法满足上述条件. 分析: 满足上述对称条件,那么涂色的种类问题我们可以 ...

最新文章

  1. Java的新项目学成在线笔记-day13(九)
  2. java.net.SocketException四大异常解决方案
  3. 4、oracle数据库的查询基础
  4. hive中删除表的错误Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException...
  5. 机器人 知乎碧桂园_杨国强森林城市与机器人跃进后的“梦醒时分”
  6. OpenCV—python—OCR 通用表格自动校正与识别
  7. dell 笔记本禁用触摸板方法
  8. 手动Linux固定IP
  9. 基于pyqt5实现QQ截图功能
  10. 10.23 第六次作业 刘惠惠 this关键字
  11. 原生js生成气泡碰撞,随机生成颜色
  12. Warning: Attempt to present ... on … which is already presenting null
  13. win10无限蓝屏_win10蓝屏died怎么办_win10无限process died解决方法
  14. 之江实验室牵手国科大杭高院 重磅启动全方位合作
  15. backface-visibility
  16. 黄金价格走势k线图如何看?
  17. STM32学习之智能灯的实现 (STM32F103C8)
  18. 数组的push()、pop()、shift()和unshift()
  19. Unity数据读写与存档(2)Json:成为神笔马良
  20. java 自定义json解析注解 复杂json解析 工具类

热门文章

  1. 学习抖音上如何一下删除大型文件,源代码给出!
  2. 物联网背后的网络安全风险
  3. 3D视觉检测的未来:光度立体技术
  4. 清晰易懂的Numpy进阶教程
  5. 目前学什么专业的人在搞SLAM?各有什么优势?
  6. Python中的数据结构
  7. 浅谈图网络在视觉任务中的应用
  8. Spring事务配置探究
  9. hdu1027 Ignatius and the Princess II (全排列 amp; STL中的神器)
  10. Linux web 网站服务器 虚拟主机