HDU 6198 矩阵快速幂
来源:互联网 发布:ruby python nodejs 编辑:程序博客网 时间:2024/06/05 15:47
ans=F(2*i+3)-1
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=100005;const ll mod=998244353;const int maxm=2;typedef struct Node{int f[maxm][maxm];Node(int a=0,int b=0,int c=0,int d=0){f[0][0]=a,f[0][1]=b;f[1][0]=c,f[1][1]=d;}Node operator + (const Node &x) const{Node ans;for(int i=0;i<maxm;i++){for(int j=0;j<maxm;j++){ans.f[i][j]=(f[i][j]+x.f[i][j])%mod;}}return ans;}Node operator * (const Node &x) const{Node ans;for(int i=0;i<maxm;i++){for(int j=0;j<maxm;j++){ll temp=0;for(int k=0;k<maxm;k++){temp=(temp+((f[i][k]%mod)*(x.f[k][j]%mod)%mod))%mod;}ans.f[i][j]=temp;}}return ans;}Node operator % (const ll &mod){for(int i=0;i<maxm;i++){for(int j=0;j<maxm;j++){f[i][j]%=mod;}}return *this;}}node;node quick_pow(node a,ll b,ll mod){node ans(1,0,1,0);while(b){if(b&1LL){ans=(ans*a)%mod;}a=(a*a)%mod;b>>=1;}return ans;}int main(int argc, char const *argv[]){ios::sync_with_stdio(false);ll n;node temp(1,1,1,0);while(cin>>n){node ans=quick_pow(temp,2*n+2,mod);cout<<(ans.f[0][0]-1+mod)%mod<<endl;}return 0;}
阅读全文
0 0
- HDU 6198 矩阵快速幂
- HDU 6198 推公式+矩阵快速幂
- 【矩阵快速幂】hdu 1575
- 【矩阵快速幂】hdu 1757
- hdu 2604 矩阵快速幂
- hdu-1575矩阵快速幂
- hdu 1575 矩阵快速幂
- hdu 1575(矩阵快速幂)
- hdu 3306 矩阵快速幂
- hdu 1757 矩阵快速幂
- hdu 1575 矩阵快速幂
- hdu 2855 矩阵快速幂
- hdu 3117 矩阵快速幂
- hdu 1005 矩阵快速幂
- hdu 4965 矩阵快速幂
- hdu 2793 矩阵快速幂
- HDU 5015(矩阵快速幂)
- hdu 5001 矩阵 快速幂
- 第一次启动tensorboard---'tensorboard' 不是内部或外部命令,也不是可运行的程序
- LeetCode 198. House Robber 213. House Robber II--动态规划
- HDU6206Apple(Java可以过,但是我有一个大胆的想法)
- 解决在Cisco Packet Tracer中,接口up, 协议 down的问题
- Python笔记_类的定义
- HDU 6198 矩阵快速幂
- 一个关于"复盘"的工作方法
- LeetCode 228. Summary Ranges
- js实现输出杨辉三角中关键字的行数
- 前端面试收集集合
- HDOJ1130 卡特兰数裸题
- 内存对齐
- 小米2018笔试题——公司饮料太便宜
- Cookie详解