找了半天错发现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. day 4 - 2 数据类型练习

    1. 在字符串中数字相连的为一组,输出数字共有几组 如: 123sdf456sdf789  数字为:3组 info = input(">>>") for i in ...

  2. 一个spring3.2的项目 从jdk1.7放到1.8的环境中编译,打开网页异常:spring jar包版本升级经历

    背景:一个历史项目用的是 spring3.2 的版本,在jdk1.7中运行没有问题,但是如果在jdk1.8中运行就会报错 ---浏览器中显示: HTTP Status 500 - Servlet.in ...

  3. python - 文件系统和文件

    文件系统和文件        文件系统是os用于明确磁盘或分区上的文件的方法和数据结构--即在磁盘上组织文件的方法        计算机文件,是存储在某种长期储存设备或临时存储设备中的一段数据流,并且 ...

  4. 创建 Pull Request

    Pull Request 是开发者使用 GitHub 进行协作的利器.这个功能为用户提供了友好的页面,让提议的更改在并入官方项目之前,可以得到充分的讨论. 最简单地来说,Pull Request 是一 ...

  5. Dotest-两张图告诉你,为什么要测试兼容性?

     这就是为什么要测试兼容性的原因:如下图:一个是IE浏览器.一个是Google浏览器

  6. P5270 无论怎样神树大人都会删库跑路

    题目地址:P5270 无论怎样神树大人都会删库跑路 第一眼看上去是模拟,似乎是 \(O(n)\) 的 水题 信心满满的写完: #include <bits/stdc++.h> using ...

  7. P5239 回忆京都

    题目地址:P5239 回忆京都 杨辉三角即组合数的"打表"形式 再求一个二维前缀和 然后处理一下负数即可(因为在求前缀和的过程中有减法) #include <bits/std ...

  8. Learning Discriminative Features with Class Encoder

    近来论文看了许多,但没多少时间总结下来.今天暂时记录一篇比较旧的论文,选择理由是 Discriminative features. 做图像说白了就是希望有足够有判别性的特征,这样在分类或者匹配.检索的 ...

  9. ES6学习笔记三(proxy和reflect)

    proxy用法 // 代理 { let obj={ time:'2017-03-11', name:'net', _r: }; let monitor=new Proxy(obj,{ // 拦截对象属 ...

  10. ARX工程必须使用release模式编译

    在添加如下代码保证debug版本的arx文件也是使用MFC的release库   // 'DEBUG workaround' below prevents the MFC or ATL #includ ...