http://acm.hdu.edu.cn/showproblem.php?pid=5950

题意:给出 a,b,n,递推出 f(n) = f(n-1) + f(n-2) * 2 + n ^ 4. f(1) = a, f(2) = b.

思路:在比赛时候知道是矩阵快速幂,可是推不出矩阵.那个n^4不知道怎么解决。结束后问其他人才知道要构造一个7 * 7的矩阵,而不是3 * 3的..

转自:http://blog.csdn.net/spring371327/article/details/52973534

 #include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <queue>
#include <vector>
using namespace std;
#define N 1010
#define INF 0x3f3f3f3f
#define MOD 2147493647
typedef long long LL; struct matrix
{
LL a[][]; void init() {
memset(a, , sizeof(a));
for(int i = ; i < ; i++) a[i][i] = ;
} matrix operator * (matrix b) {
matrix ans;
LL tmp;
for(int i = ; i < ; i++) {
for(int j = ; j < ; j++) {
ans.a[i][j] = ;
for(int k = ; k < ; k++) {
tmp = a[i][k] * b.a[k][j] % MOD;
ans.a[i][j] = (ans.a[i][j] + tmp % MOD) % MOD;
}
}
}
return ans;
}
}; matrix q_pow(matrix a, LL b)
{
matrix ans;
ans.init();
while(b) {
if(b & ) ans = ans * a;
b >>= ;
a = a * a;
}
return ans;
} int main()
{
matrix mo;
memset(mo.a, , sizeof(mo.a));
mo.a[][] = ;
mo.a[][] = ; mo.a[][] = , mo.a[][] = , mo.a[][] = , mo.a[][] = , mo.a[][] = , mo.a[][] = ;
mo.a[][] = , mo.a[][] = , mo.a[][] = , mo.a[][] = , mo.a[][] = ;
mo.a[][] = , mo.a[][] = , mo.a[][] = , mo.a[][] = ;
mo.a[][] = , mo.a[][] = , mo.a[][] = ;
mo.a[][] = , mo.a[][] = ;
mo.a[][] = ;
int t;
scanf("%d", &t);
while(t--) {
long long n, a, b;
scanf("%I64d%I64d%I64d", &n, &a, &b);
if(n == ) printf("%I64d\n", a);
else if(n == ) printf("%I64d\n", b);
else {
matrix ans = q_pow(mo, n - );
LL sum = ;
sum = (sum + ans.a[][] * a) % MOD;
sum = (sum + ans.a[][] * b) % MOD;
sum = (sum + ans.a[][] * ) % MOD;
sum = (sum + ans.a[][] * ) % MOD;
sum = (sum + ans.a[][] * ) % MOD;
sum = (sum + ans.a[][] * ) % MOD;
sum = (sum + ans.a[][]) % MOD;
printf("%I64d\n", sum);
}
}
return ;
}

HDU 5950:Recursive sequence(矩阵快速幂)的更多相关文章

  1. HDU 5950 - Recursive sequence - [矩阵快速幂加速递推][2016ACM/ICPC亚洲区沈阳站 Problem C]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5950 Farmer John likes to play mathematics games with ...

  2. hdu 5950 Recursive sequence 矩阵快速幂

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  3. 5950 Recursive sequence (矩阵快速幂)

    题意:递推公式 Fn = Fn-1 + 2 * Fn-2 + n*n,让求 Fn; 析:很明显的矩阵快速幂,因为这个很像Fibonacci数列,所以我们考虑是矩阵,然后我们进行推公式,因为这样我们是无 ...

  4. Recursive sequence HDU - 5950 (递推 矩阵快速幂优化)

    题目链接 F[1] = a, F[2] = b, F[i] = 2 * F[i-2] + F[i-1] + i ^ 4, (i >= 3) 现在要求F[N] 类似于斐波那契数列的递推式子吧, 但 ...

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

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

  6. HDU5950 Recursive sequence —— 矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-5950 Recursive sequence Time Limit: 2000/1000 MS (Java/Others)   ...

  7. HDU - 1005 Number Sequence 矩阵快速幂

    HDU - 1005 Number Sequence Problem Description A number sequence is defined as follows:f(1) = 1, f(2 ...

  8. HDU 1005 Number Sequence(矩阵快速幂,快速幂模板)

    Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1 ...

  9. HDU - 1005 -Number Sequence(矩阵快速幂系数变式)

    A number sequence is defined as follows:  f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) m ...

  10. CF1106F Lunar New Year and a Recursive Sequence——矩阵快速幂&&bsgs

    题意 设 $$f_i = \left\{\begin{matrix}1 , \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  i < k\\ ...

随机推荐

  1. 第九篇 Replication:复制监视器

    本篇文章是SQL Server Replication系列的第九篇,详细内容请参考原文. 复制监视器允许你查看复制配置组件的健康状况.这一篇假设你遵循前八篇,并且你已经有一个合并发布和事务发布.启动复 ...

  2. iOS 蓝牙开发之传输图片

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  3. 线程池——JAVA并发编程指南

    TPS00-J. 用线程池实现应用在流量暴涨时优雅降级 很多程序都要解决这样一个问题——处理一系列外来的请求.Thread- Per-Message这种设计模式是最简单的并发策略了,它为每一个请求创建 ...

  4. MS SQL SERVER 锁研究记录

    首先创建一直数据表 ChenJi,有如下字段: ID, DanWeiID,  Name,  ChenJi CREATE TABLE [dbo].[ChenJi]( [ID] [int] NOT NUL ...

  5. PostgreSQL configuration file postgresql.conf recommanded settings and how it works

    1        Set max_connections to three times the number of processor cores on the server. Include vir ...

  6. Winform 控件

    ※控件在视图工具箱里面找,找到之后双击即可添加进来,也可以点住拖进来 ※每个工具,控件,窗体都有一个name,相当于id,用来标识该对象的名称,name值不允许重复 控件: 1.Label -- 文本 ...

  7. spring纯java注解式开发(一)

    习惯了用XML文件来配置spring,现在开始尝试使用纯java代码来配置spring. 其实,spring的纯java配置,简单来说就是将bean标签的内容通过注解转换成bean对象的过程,没什么神 ...

  8. myeclipse项目里有红色感叹号

    myeclipse项目里有红色感叹号 这种情况是因为 .classpath 文件里面配置引用了某个jar,但是实际上你的 lib 里面并没有这个jar 所以才会有红色的提示. 不用拿.classpat ...

  9. HDU 4899 Hero meet devil(状压DP)(2014 Multi-University Training Contest 4)

    Problem Description There is an old country and the king fell in love with a devil. The devil always ...

  10. Android 测试Service的生命周期

    package com.example.myapp4; import android.support.v7.app.ActionBarActivity; import android.content. ...