【構造共軛函式+矩陣快速冪】HDU 4565 So Easy! (2013 長沙賽區邀請賽)
【題目連結】 :click here~~
【題目大意】:
A sequence Sn is defined as:
Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. You are to calculate Sn.
You, a top coder, say: So easy!
【解題思路】
給一張神圖,推理寫的灰常明白了,關鍵是構造共軛函式,這一點實在是要有數學知識的理論基礎,推出了遞推式,接下來就是矩陣的快速冪了。
給個大神的連結:構造類斐波那契數列的矩陣快速冪
神圖:click here~~
程式碼:
/*
* 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=2; // 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,0,sizeof(mat));
}
void init(LL a,LL b,LL c,LL d){
mat[0][0]=a;mat[0][1]=b;
mat[1][0]=c;mat[1][1]=d;
}
mut operator *(const mut &c)
{
mut res;
for(int i=0; i<siz; ++i){
for(int k=0; k<siz; ++k){
for(int j=0; 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(1,0,0,1);
while(n){
if(n&1) ans=ans*AC;
n>>=1;
AC=AC*AC;
}
return ans;
}
int main()
{
while(~scanf("%lld %lld %lld %lld",&A,&B,&N,&M)){
if(N<=1){
printf("%lld\n",2*A%M);
}
else{
AC.init(2*A,B-A*A,1,0);
mut ans=poww(N-1);
printf("%lld\n",MODD(2*A%M*ans.mat[0][0]+2*ans.mat[0][1],M));
}
} return 0;
}
相關文章
- HDU 4565 So Easy!(矩陣快速冪)矩陣
- HDU4565 So Easy! (矩陣)矩陣
- HDU 4565 So Easy!(公式化簡+矩陣)公式矩陣
- 2013長沙網路賽H題Hypersphere (蛋疼的題目 神似邀請賽A題)
- HDU 1575 Tr A(矩陣快速冪)矩陣
- HDU 4686 (推公式+矩陣快速冪)公式矩陣
- HDU 4965 Fast Matrix Calculation(矩陣快速冪)AST矩陣
- HDU4592 Boring Game (2013 ACM-ICPC南京賽區全國邀請賽) 高斯消元GAMACM
- HDU 2157 How many ways?? (矩陣快速冪)矩陣
- HDU 1005 Number Sequence(矩陣快速冪)矩陣
- HDU 2256Problem of Precision(矩陣快速冪)矩陣
- HDU 1575 Tr A【矩陣快速冪取模】矩陣
- HDU 1005 Number Sequence:矩陣快速冪矩陣
- HDU5411CRB and Puzzle(矩陣快速冪)矩陣
- 矩陣快速冪矩陣
- HDU 2276 - Kiki & Little Kiki 2 (矩陣快速冪)矩陣
- HDU 4291 A Short problem(矩陣快速冪+迴圈節)矩陣
- HDU3221Brute-force Algorithm(矩陣快速冪&&指數降冪)Go矩陣
- 2015年吉林省賽 Pin Pin Pin(矩陣快速冪)矩陣
- bzoj3240: [Noi2013]矩陣遊戲(矩陣乘法+快速冪)矩陣遊戲
- 矩陣快速冪(快忘了)矩陣
- 矩陣快速冪總結矩陣
- 2018天梯賽、藍橋杯、(CCPC省賽、邀請賽、ICPC邀請賽)校內選拔賽反思總結!
- 第三屆華中地區邀請賽網路賽題解
- 【矩陣乘法】【快速冪】遞推矩陣
- 矩陣快速冪加速最短路矩陣
- 演算法學習:矩陣快速冪/矩陣加速演算法矩陣
- HDU 2157 How many ways??:矩陣快速冪【i到j共經過k個節點的方法數】矩陣
- 計蒜客模擬賽D2T1 蒜頭君的兔子:矩陣快速冪矩陣
- HDU 4549 M斐波那契數列(矩陣快速冪+費馬小定理)矩陣
- POJ 3613 Cow Relays 矩陣乘法Floyd+矩陣快速冪矩陣
- HDU 4496D-City2013通化邀請賽D題(並查集 需要壓縮路徑)並查集
- Wannafly模擬賽 矩陣 二維矩陣hash矩陣
- HDU 4549M斐波那契數列(矩陣快速冪+費馬小定理)矩陣
- P3390 【模板】矩陣快速冪矩陣
- [比賽總結]青島理工大學邀請賽比賽總結
- POJ 2778-DNA Sequence(AC自動機+構建鄰接矩陣+矩陣快速冪)矩陣
- 從斐波那契到矩陣快速冪矩陣