UVA 10655 Contemplation! Algebra (矩陣快速冪)
題目連結:傳送門
題意:
給定你三個數,p,q,n, p代表的是 a + b, q代表的是a*b;
然後求a^n + b^n
設f[i] = a^i +b^i; f[0]=2,f[1]=p;
f[i]*(a+b) = a^(i+1) + b^(i+1) +a^i*b + b^i*a;
f[i]*p = f[i+1] + a*b*[ a^(i-1) + b^(i-1) ]
f[i+1] = f[i]*p + q*f[i-1];
然後用矩陣加速一下就可以了(ps.這個題的輸入非常坑。。。。)
程式碼如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <set>
#include <map>
#include <queue>
#define PB push_back
#define MP make_pair
#define REP(i,n) for(int i=0;i<(n);++i)
#define FOR(i,l,h) for(int i=(l);i<=(h);++i)
#define DWN(i,h,l) for(int i=(h);i>=(l);--i)
#define IFOR(i,h,l,v) for(int i=(h);i<=(l);i+=(v))
#define CLR(vis) memset(vis,0,sizeof(vis))
#define MST(vis,pos) memset(vis,pos,sizeof(vis))
#define MAX3(a,b,c) max(a,max(b,c))
#define MAX4(a,b,c,d) max(max(a,b),max(c,d))
#define MIN3(a,b,c) min(a,min(b,c))
#define MIN4(a,b,c,d) min(min(a,b),min(c,d))
#define PI acos(-1.0)
#define INF 1000000000
#define LINF 1000000000000000000LL
#define eps 1e-8
#define LL long long
using namespace std;
const int maxn = 2;
struct matrix{
LL a[maxn][maxn];
matrix operator *(matrix b){
matrix ans;
REP(i,maxn){
REP(j,maxn){
ans.a[i][j]=0;
REP(k,maxn) ans.a[i][j]+=a[i][k]*b.a[k][j];
}
}
return ans;
}
};
matrix I={1,0,0,1};
matrix pow(matrix A,LL k){
matrix ans = I;
while(k){
if(k&1) ans=ans*A;
k>>=1;
A=A*A;
}
return ans ;
}
int main()
{
LL p,q,n;
while(cin>>p>>q>>n){
if(n==0){puts("2");continue;}
LL f0=2,f1=p;
matrix A={p,-q,1,0};
matrix tmp = I*A;
matrix ans = pow(A , n-1);
cout<<ans.a[0][0]*f1+ans.a[0][1]*f0<<endl;
}
return 0;
}
相關文章
- 矩陣快速冪矩陣
- 矩陣快速冪總結矩陣
- 矩陣快速冪(快忘了)矩陣
- 矩陣快速冪加速最短路矩陣
- 矩陣快速冪最佳化矩陣
- 【矩陣乘法】【快速冪】遞推矩陣
- 演算法學習:矩陣快速冪/矩陣加速演算法矩陣
- HDU 1005 Number Sequence(矩陣快速冪)矩陣
- POJ 3613 Cow Relays 矩陣乘法Floyd+矩陣快速冪矩陣
- HDU 2256Problem of Precision(矩陣快速冪)矩陣
- HDU 2157 How many ways?? (矩陣快速冪)矩陣
- BZOJ 3329 Xorequ:數位dp + 矩陣快速冪矩陣
- HDU 2276 - Kiki & Little Kiki 2 (矩陣快速冪)矩陣
- 從斐波那契到矩陣快速冪矩陣
- 第?課——基於矩陣快速冪的遞推解法矩陣
- 費馬小定理 + 費馬大定理 + 勾股數的求解 + 快速冪 + 矩陣快速冪 【模板】矩陣
- bzoj4887: [Tjoi2017]可樂(矩陣乘法+快速冪)矩陣
- poj--2778DNA Sequence+AC自動機+矩陣快速冪矩陣
- BZOJ3329: Xorequ(二進位制數位dp 矩陣快速冪)矩陣
- POJ 3233 Matrix Power Series (矩陣快速冪+等比數列二分求和)矩陣
- HDU 4549 M斐波那契數列(矩陣快速冪+費馬小定理)矩陣
- SciTech-Mathmatics-Advanced Algebra-LinearAlgebra: 矩陣的相抵、相似與合同矩陣
- 快速冪
- 快速乘/快速冪
- NYOJ 1409 快速計算【矩陣連乘】矩陣
- 巨大的矩陣(矩陣加速)矩陣
- 鄰接矩陣、度矩陣矩陣
- 快速冪模板
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 矩陣矩陣
- 越獄(快速冪)
- 求任意矩陣的伴隨矩陣矩陣
- 矩陣和陣列矩陣陣列
- 理解矩陣矩陣
- 海浪矩陣矩陣
- 矩陣相乘矩陣
- 稀疏矩陣矩陣
- 螺旋矩陣矩陣