【解题思路】

给一张神图,推理写的灰常明白了,关键是构造共轭函数,这一点实在是要有数学知识的理论基础,推出了递推式,接下来就是矩阵的快速幂了。

神图:

给个大神的链接:构造类斐波那契数列的矩阵快速幂

/*
* Problem: HDU No.4565
* Running time: 62MS
* Complier: G++
* Author: javaherongwei
* Create Time: 9:55 2015/9/21 星期一
*/ #include <bits/stdc++.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm> using namespace std;
typedef long long LL;
const LL siz=; // max size of the matrix,
#define MODD(a,b) (((a%b)+b)%b) LL A,B,N,M,ret;
struct mut
{
LL mat[siz][siz];
mut(){
memset(mat,,sizeof(mat));
}
void init(LL a,LL b,LL c,LL d){
mat[][]=a;mat[][]=b;
mat[][]=c;mat[][]=d;
}
mut operator *(const mut &c)
{
mut res;
for(int i=; i<siz; ++i){
for(int k=; k<siz; ++k){
for(int j=; j<siz; ++j){
res.mat[i][j]=MODD(res.mat[i][j]+mat[i][k]*c.mat[k][j],M);
}
}
}
return res;
}
}AC; mut poww(LL n)
{
mut ans;
ans.init(,,,);
while(n){
if(n&) ans=ans*AC;
n>>=;
AC=AC*AC;
}
return ans;
} int main()
{
while(~scanf("%lld %lld %lld %lld",&A,&B,&N,&M)){
if(N<=){
printf("%lld\n",*A%M);
}
else{
AC.init(*A,B-A*A,,);
mut ans=poww(N-);
printf("%lld\n",MODD(*A%M*ans.mat[][]+*ans.mat[][],M));
}
} return ;
}

【构造共轭函数+矩阵快速幂】HDU 4565 So Easy! (2013 长沙赛区邀请赛)的更多相关文章

  1. 矩阵快速幂 HDU 4565 So Easy!(简单?才怪!)

    题目链接 题意: 思路: 直接拿别人的图,自己写太麻烦了~ 然后就可以用矩阵快速幂套模板求递推式啦~ 另外: 这题想不到或者不会矩阵快速幂,根本没法做,还是2013年长沙邀请赛水题,也是2008年Go ...

  2. HDU 6395 分段矩阵快速幂 HDU 6386 建虚点+dij

    http://acm.hdu.edu.cn/showproblem.php?pid=6395 Sequence Time Limit: 4000/2000 MS (Java/Others)    Me ...

  3. 循环节 + 矩阵快速幂 - HDU 4291 A Short problem

    A Short problem Problem's Link Mean: 给定一个n,求:g(g(g(n))) % 1000000007 其中:g(n) = 3g(n - 1) + g(n - 2), ...

  4. 矩阵快速幂--HDU 6030 Happy Necklace

    Problem Description Little Q wants to buy a necklace for his girlfriend. Necklaces are single string ...

  5. HDU5950 Recursive sequence (矩阵快速幂加速递推) (2016ACM/ICPC亚洲赛区沈阳站 Problem C)

    题目链接:传送门 题目: Recursive sequence Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total ...

  6. hdu 2256 Problem of Precision 构造整数 + 矩阵快速幂

    http://acm.hdu.edu.cn/showproblem.php?pid=2256 题意:给定 n    求解   ? 思路: , 令  , 那么 , 得: 得转移矩阵: 但是上面求出来的并 ...

  7. poj3070 单位矩阵(转移矩阵构造)+矩阵快速幂

    太妙了..通过矩阵乘法来加速递推 #include<iostream> #include<cstring> #include<cstdio> using names ...

  8. POJ3233 构造子矩阵+矩阵快速幂

    题意:给你矩阵A,求S=A+A^1+A^2+...+A^n sol:直接把每一项解出来显然是不行的,也没必要. 我们可以YY一个矩阵: 其中1表示单位矩阵 然后容易得到: 可以看出这个分块矩阵的左下角 ...

  9. hdu 4565 So Easy! (共轭构造+矩阵快速幂)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4565 题目大意: 给出a,b,n,m,求出的值, 解题思路: 因为题目中出现了开根号,和向上取整后求 ...

随机推荐

  1. java 重新学习 (六)

    一.java7以后,使用带泛型的接口,类定义变量,那么调用构造器创建对象时构造器的后面不必带上泛型.List<String> list = new ArrayList()<>; ...

  2. html5中利用FileReader来读取文件。

    利用FileReader来读取文件的能够来实现即时预览的效果,这个也是在html5中才有的功能. <!DOCTYPE html> <html lang="en"& ...

  3. AOP之PostSharp2-OnMethodBoundaryAspect

    在上一篇中我们了解了简单的OnExceptionAspectAOP面向方向切入,在第一节中我们将继续我们的PostSharp AOP系列的OnMethodBoundaryAspect方法行为的切入,这 ...

  4. 利用HTML和CSS实现常见的布局

    水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的父容器是paren ...

  5. shiro安全框架的使用流程

    最近学了shiro安全框架流程,在这里梳理一下shiro的工作流程和一些代码,方便以后使用的时候,能快速找到对应的代码. 要使用这个shiro框架,还要新建两张表 t_authority(权限表)和t ...

  6. Hibernate4教程一:入门介绍

    第一部分:Hibernate入门 Hibernate是什么     Hibernate是一个轻量级的ORM框架     ORM原理(Object Relational Mapping)     ORM ...

  7. SpringMVC学习(6):数据验证

    在系列(4).(5)中我们展示了如何绑定数据,绑定完数据之后如何确保我们得到的数据的正确性?这就是我们本篇要说的内容 -> 数据验证. 这里我们采用Hibernate-validator来进行验 ...

  8. windows xp .net framework 4.0 HttpWebRequest 报The underlying connection was closed,基础连接已关闭

    windows xp .net framework 4.0 HttpWebRequest 报The underlying connection was closed,基础连接已关闭,错误的解决方法 在 ...

  9. testparm - 检查smb.conf配置文件的内部正确性

    总览 testparm [-s] [-h] [-L servername] [configfilename] [hostname hostIP] 描述 此程序是samba套件的一部分. testpar ...

  10. 同域SQL server 做镜像服务器遇到1418错误

    今天遇到了如题所说的错误,查了一天没有看到好的解决方案,因为作者是小白,所以对于解决方案都是代码的那种,完全理解不了. 现在,讲述一下我的解决方法.因为是同域的服务器,这个时候说网络访问不了对方,但是 ...