hdu4990 转移矩阵
找了半天错发现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 转移矩阵的更多相关文章
- 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- ...
- bzoj2973转移矩阵构造法!
/* 构造单位矩阵(转移矩阵) 给定n*m网格,每个格子独立按照长度不超过6的操作串循环操作 对应的操作有 0-9:拿x个石头到这个格子 nwse:把这个格子的石头推移到相邻格子 d:清空该格石子 开 ...
- [动态dp]线段树维护转移矩阵
背景:czy上课讲了新知识,从未见到过,总结一下. 所谓动态dp,是在动态规划的基础上,需要维护一些修改操作的算法. 这类题目分为如下三个步骤:(都是对于常系数齐次递推问题) 1先不考虑修改,不考虑区 ...
- Page5:状态转移矩阵及性质、连续线性系统离散化及其性质[Linear System Theory]
内容包含脉冲响应矩阵和传递函数矩阵之间的关系,状态转移矩阵及性质,以及线性连续系统离散化及其性质
- hdu4990矩阵快速幂
就是优化一段代码,用矩阵快速幂(刚开始想到了转移矩阵以为是错的) 在搜题解时发现了一个神奇的网站:http://oeis.org/ 用来找数列规律 的神器.... 规律就是an=an-1+2*an-2 ...
- bzoj-1009-dp+kmp处理转移矩阵幂
1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4723 Solved: 2940[Submit][Statu ...
- HDU4990 Reading comprehension —— 递推、矩阵快速幂
题目链接:https://vjudge.net/problem/HDU-4990 Reading comprehension Time Limit: 2000/1000 MS (Java/Others ...
- NLP --- 条件随机场CRF详解 重点 特征函数 转移矩阵
上一节我们介绍了CRF的背景,本节开始进入CRF的正式的定义,简单来说条件随机场就是定义在隐马尔科夫过程的无向图模型,外加可观测符号X,这个X是整个可观测向量.而我们前面学习的HMM算法,默认可观测符 ...
- hdu4990 矩阵
C - Reading comprehension Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
随机推荐
- 2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目
2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目 结合本课程时间安排,以及同学们的专业和课程内容,制定了以下六个题目供各小组选择.如有其他项目方案设想,可自行与老师沟通.老 ...
- 【blog】MySQL中tinytext、text、mediumtext和longtext详解
参考链接 http://www.cnblogs.com/pureEve/p/6015000.html
- Git——如何将本地项目提交至远程仓库
参考文章:http://blog.csdn.net/dadaxiongdebaobao/article/details/52081826 git 将一个本地文件目录提交到远程仓库的步骤 参考文章: ...
- mysql 原理 ~ redo
一 简介:redo log二 文件 ib_logfile0 ib_logfile1 两个redo log 默认为一组 循环覆盖写入三 相关参数 innodb_log_file_size=256 ...
- Create AI Guard Class
创建FPSAIGuard类 不需要玩家输入,删除多余的函数 FPSAIGuard.h #include "CoreMinimal.h" #include "GameFra ...
- python - pymysql模块
pymsql 模块 基本应用介绍: # 安装模块 pip install PyMySql # 导入模块 import pymysql # 配置连接信息 config = { 'host':'127.0 ...
- JDK中Concurrent包介绍及使用(包含atomic包/lock包/并发容器/执行器)
Java Concurrent并发包概括 https://blog.csdn.net/u012232736/article/details/79919450 Java中的Atomic包使用指南 ...
- tkinter模块常用参数python
1.使用tkinter.Tk()生成主窗口(root = tkinter.Tk()) root.title("标题名") 修改窗体的名字,也可以在创建的时候使用clas ...
- 【sql inject】sql盲注技巧
SAMPLE 知识点 使用 AND 1 = 1 / 1 或者 1 = 1 / 0 判断是否存在注入,如果正确就会返回页面,如果错误就是1/0语法错误使得页面报错: queueID = 743994 A ...
- gcc的使用简介与命令行参数说明
(一) gcc的基本用法(二) 警告提示功能选项(三) 库操作选项(四) 调试选项(五) 交叉编译选项 (一) gcc的基本用法使用gcc编译器时,必须给出一系列必要的调用参数和文件名称.不同参数的先 ...