找了半天错发现m有可能是1.。

/*
如果n是奇数,就进行(n/2)次转移,然后取F[2],反之取F[1]
*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m,F[];
struct Mat{
ll m[][];
Mat(){memset(m,,sizeof m);}
};
void mul1(ll F[],Mat A){
ll C[]={};
for(int j=;j<;j++)
for(int i=;i<;i++)
C[j]=(C[j]+F[i]*A.m[i][j]%m)%m;
memcpy(F,C,sizeof C);
}
void mul2(Mat & A,Mat B){
Mat C;
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
C.m[i][j]=(C.m[i][j]+A.m[i][k]*B.m[k][j]%m)%m;
memcpy(A.m,C.m,sizeof C.m);
}
int main(){
while(cin>>n>>m){
memset(F,,sizeof F);
F[]=,F[]=,F[]=;
Mat A;
A.m[][]=A.m[][]=;
A.m[][]=,A.m[][]=; if(n==){
cout<<%m<<endl;
continue;
} int flag=n%;
n/=;
while(n){
if(n%)
mul1(F,A);
mul2(A,A);
n>>=;
}
cout<<F[+flag]%m<<endl;
}
}

hdu4990 转移矩阵的更多相关文章

  1. hdu5015构造转移矩阵

    /* 构造转移矩阵: 先推公式: 首先是第0行:A[0][j+1]=A[0][j]*10+3 1-n行: A[i][j+1]=A[i][j]+A[i-1][j+1]=... =A[i][j]+A[i- ...

  2. bzoj2973转移矩阵构造法!

    /* 构造单位矩阵(转移矩阵) 给定n*m网格,每个格子独立按照长度不超过6的操作串循环操作 对应的操作有 0-9:拿x个石头到这个格子 nwse:把这个格子的石头推移到相邻格子 d:清空该格石子 开 ...

  3. [动态dp]线段树维护转移矩阵

    背景:czy上课讲了新知识,从未见到过,总结一下. 所谓动态dp,是在动态规划的基础上,需要维护一些修改操作的算法. 这类题目分为如下三个步骤:(都是对于常系数齐次递推问题) 1先不考虑修改,不考虑区 ...

  4. Page5:状态转移矩阵及性质、连续线性系统离散化及其性质[Linear System Theory]

    内容包含脉冲响应矩阵和传递函数矩阵之间的关系,状态转移矩阵及性质,以及线性连续系统离散化及其性质

  5. hdu4990矩阵快速幂

    就是优化一段代码,用矩阵快速幂(刚开始想到了转移矩阵以为是错的) 在搜题解时发现了一个神奇的网站:http://oeis.org/ 用来找数列规律 的神器.... 规律就是an=an-1+2*an-2 ...

  6. bzoj-1009-dp+kmp处理转移矩阵幂

    1009: [HNOI2008]GT考试 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 4723  Solved: 2940[Submit][Statu ...

  7. HDU4990 Reading comprehension —— 递推、矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-4990 Reading comprehension Time Limit: 2000/1000 MS (Java/Others ...

  8. NLP --- 条件随机场CRF详解 重点 特征函数 转移矩阵

    上一节我们介绍了CRF的背景,本节开始进入CRF的正式的定义,简单来说条件随机场就是定义在隐马尔科夫过程的无向图模型,外加可观测符号X,这个X是整个可观测向量.而我们前面学习的HMM算法,默认可观测符 ...

  9. hdu4990 矩阵

    C - Reading comprehension Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...

随机推荐

  1. 2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目

    2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目 结合本课程时间安排,以及同学们的专业和课程内容,制定了以下六个题目供各小组选择.如有其他项目方案设想,可自行与老师沟通.老 ...

  2. 【blog】MySQL中tinytext、text、mediumtext和longtext详解

    参考链接 http://www.cnblogs.com/pureEve/p/6015000.html

  3. Git——如何将本地项目提交至远程仓库

    参考文章:http://blog.csdn.net/dadaxiongdebaobao/article/details/52081826   git 将一个本地文件目录提交到远程仓库的步骤 参考文章: ...

  4. mysql 原理 ~ redo

    一 简介:redo log二 文件   ib_logfile0 ib_logfile1 两个redo log 默认为一组 循环覆盖写入三 相关参数   innodb_log_file_size=256 ...

  5. Create AI Guard Class

    创建FPSAIGuard类 不需要玩家输入,删除多余的函数 FPSAIGuard.h #include "CoreMinimal.h" #include "GameFra ...

  6. python - pymysql模块

    pymsql 模块 基本应用介绍: # 安装模块 pip install PyMySql # 导入模块 import pymysql # 配置连接信息 config = { 'host':'127.0 ...

  7. JDK中Concurrent包介绍及使用(包含atomic包/lock包/并发容器/执行器)

    Java Concurrent并发包概括  https://blog.csdn.net/u012232736/article/details/79919450 Java中的Atomic包使用指南   ...

  8. tkinter模块常用参数python

    1.使用tkinter.Tk()生成主窗口(root = tkinter.Tk()) root.title("标题名")       修改窗体的名字,也可以在创建的时候使用clas ...

  9. 【sql inject】sql盲注技巧

    SAMPLE 知识点 使用 AND 1 = 1 / 1 或者 1 = 1 / 0 判断是否存在注入,如果正确就会返回页面,如果错误就是1/0语法错误使得页面报错: queueID = 743994 A ...

  10. gcc的使用简介与命令行参数说明

    (一) gcc的基本用法(二) 警告提示功能选项(三) 库操作选项(四) 调试选项(五) 交叉编译选项 (一) gcc的基本用法使用gcc编译器时,必须给出一系列必要的调用参数和文件名称.不同参数的先 ...