链接: Best Solver

题目分析:

这个题目的关键点是需知道“共轭”.

如 :(A√B + C√D)  和 (A√B - C√D) 是共轭的

这个有一个规律 (A√B + C√D)^n + (A√B - C√D)^n  是一个整数(这里大家可以写写试试看)。

由题目可知:

因为我们要求的是:(5+2√6)^(1+2x), 我们可以构造一对共轭数。 (5-2√6),

因为0<(5-2√6) < 1, 所以 0<(5-2√6)^n < 1

故: 我们的式子由上述共轭的性质可知 y = (5+2√6)^(1+2x) + (5-2√6)^(1+2x) - 1;(y是要向下取整)

然后我们的y其实是有一个递推关系的:

F(n) = 10*F(n-1) - F(n-2).

证明如下:

设: Sn = (5+2√6)^n + (5-2√6)^n;

Sn * ( (5+2√6) + (5-2√6) )  = Sn * 10 = Sn+1 + Sn-1 * 1;

故: Sn+1 = 10*Sn  - Sn-1;

=================================================================================================

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;
const LL INF = 0xfffffff;
const LL maxn = ;
int dp[maxn];
int GetLoop(int m)
{
memset(dp, , sizeof(dp));
dp[] = %m;
dp[] = %m;
for(int i=; i<=maxn-; i++)
{
dp[i] = (*dp[i-] - dp[i-]+m)%m; if(dp[i] == dp[] && dp[i-] == dp[])
return i-;
}
return -;
}
int QuickPow(int a,int b,int MOD)
{
int ans = , k = a; while(b)
{
if(b% == )
ans = (ans * k)%MOD;
k = (k * k)%MOD;
b /= ;
}
return (ans+)%MOD;
} int main()
{
int T, n, m, cas = ;
cin >> T;
while(T--)
{
cin >> n >> m; int LoopNode = GetLoop(m);
int ans = QuickPow(, n, LoopNode);
printf("Case #%d: %d\n",cas++, (dp[ans%LoopNode] - )%m);
}
return ;
}

5451 HDU Best Solver的更多相关文章

  1. Hdu 5451 Best Solver (2015 ACM/ICPC Asia Regional Shenyang Online) 暴力找循环节 + 递推

    题目链接: Hdu  5451  Best Solver 题目描述: 对于,给出x和mod,求y向下取整后取余mod的值为多少? 解题思路: x的取值为[1, 232],看到这个指数,我的心情是异常崩 ...

  2. hdu 5451 Best Solver 矩阵循环群+矩阵快速幂

    http://acm.hdu.edu.cn/showproblem.php?pid=5451 题意:给定x    求解 思路: 由斐波那契数列的两种表示方法, 之后可以转化为 线性表示 F[n] = ...

  3. 特征根法求通项+广义Fibonacci数列找循环节 - HDU 5451 Best Solver

    Best Solver Problem's Link Mean: 给出x和M,求:(5+2√6)^(1+2x)的值.x<2^32,M<=46337. analyse: 这题需要用到高中的数 ...

  4. ACM学习历程—HDU 5451 Best Solver(Fibonacci数列 && 快速幂)(2015沈阳网赛1002题)

    Problem Description The so-called best problem solver can easily solve this problem, with his/her ch ...

  5. HDU - 5451 Best Solver(循环节+矩阵快速幂)

    Best Solver The so-called best problem solver can easily solve this problem, with his/her childhood ...

  6. HDU 5451 Best Solver 数论 快速幂 2015沈阳icpc

    Best Solver Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)Tota ...

  7. HDU 5451 Best Solver(fibonacci)

    感谢这道题让我复习了一遍线代,还学习了一些奇奇怪怪的数论. 令 二项展开以后根号部分抵消了 显然有 所以要求的答案是 如果n比较小的话,可以直接对二项式快速幂,但是这题n很大 这个问题和矩阵的特征值以 ...

  8. HDU 5451 Best Solver

    没有意识到循环节最大是M^2,用域Z_M下二阶可逆矩阵群的最大循环节(M^2-1)*(M^2-M)来做,考虑大数乘法,矩阵乘法,做到吐血.将代码贴在下方留作纪念. #include<bits/s ...

  9. HDOJ(HDU) 1898 Sempr == The Best Problem Solver?(水题、、、)

    Problem Description As is known to all, Sempr(Liangjing Wang) had solved more than 1400 problems on ...

随机推荐

  1. error: device not found - waiting for device -

    执行 cocos run -p android 时报的这个错误 连接上 android 手机, 手机开启开发者模式.  设置--其他高级设置--开发者选项--USB 调试

  2. VNC服务端自动化配置脚本

    在使用阿里云的linux云主机,看到官方提供的远程连接服务器bash脚本,记录下来.       功能:自动修改系统源和安装vncserver相关的软件包,centos.redhat系列都是安装gno ...

  3. 程序从高版本降到2.0,数据集报错 TypedTableBase

    错误  命名空间“System.Data”中不存在类型或命名空间名称“TypedTableBase”(是缺少程序集引用吗?) 解决: 该错误出现在自动生成的XXX.Designer.cs里. .NET ...

  4. WCF 用netTcpbinding,basicHttpBinding 传输大文件

    问题:WCF如何传输大文件 方案:主要有几种绑定方式netTcpbinding,basicHttpBinding,wsHttpbinding,设置相关的传输max消息选项,服务端和客户端都要设置,tr ...

  5. updatepanel局部刷新功能,实现注册时对用户名的检测

    updatepanel的使用 通过将控件放入到updatepanel中,实现局部刷新. 前台代码:<asp:ScriptManager ID="ScriptManager1" ...

  6. angularjs ngTable -Custom filter template-calendar

    jsp页面: <script type="text/ng-template" id="path/to/your/filters/top-Date-One.html& ...

  7. Hessian(C#)介绍及使用说明

    什么是Hessian? Hessian是Caucho开发的一种二进制Web Service协议.支持目前所有流行的开发平台. Hessia能干什么? hessian用来实现web服务. Hessia有 ...

  8. ASP.NET 导入EXCEL文档

    鉴于教务一般都是手动输入学生信息,在未了解本校数据库的客观情况之下,我们准备设计一个导入excel文档中学生信息如数据库的功能.结合网上各类大牛的综合版本出炉.. 首先具体的实现思想如下: 1.先使用 ...

  9. 基于nodejs的消息中心

    参考:http://t42dw.iteye.com/blog/1767013

  10. 初涉JavaScript模式 (3) : 字面量

    什么是字面量? 在编程语言中,字面量是一种表示值的记法.例如,"Hello, World!" 在许多语言中都表示一个字符串字面量(string literal ),JavaScri ...