HDU 1005 Number Sequence(基礎矩陣快速冪)
//HDU 1005 15MS 1424K
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const long long mod=7;
long long A,B,n;
struct Matrix{
int row,col;
long long data[10][10];
};
inline Matrix mul(Matrix a,Matrix b)
{
Matrix ans;
ans.row=a.row,ans.col=b.col;
memset (ans.data,0,sizeof(ans.data));
for(int i=1;i<=ans.row;i++){
for(int j=1;j<=ans.col;j++){
for(int k=1;k<=a.col;k++){
ans.data[i][j]+=a.data[i][k]*b.data[k][j]%mod;
ans.data[i][j]%=mod;
}
}
}
return ans;
}
inline Matrix quick_power(Matrix a,long long m)
{
Matrix ans,tmp=a;
ans.row=ans.col=a.row;
memset(ans.data,0,sizeof(ans.data));
for(int i=1;i<=ans.row;i++) ans.data[i][i]=1;
while(m){
if(m&1) ans=mul(ans,tmp);
tmp=mul(tmp,tmp);
m>>=1;
}
return ans;
}
int main()
{
//freopen("1005in.txt","r",stdin);
while(~scanf("%lld%lld%lld",&A,&B,&n)){
if(A==0&&B==0&&n==0) break;
Matrix ans,tmp;
ans.row=ans.col=tmp.row=2,tmp.col=1;
ans.data[1][1]=A,ans.data[1][2]=B;
ans.data[2][1]=1,ans.data[2][2]=0;
tmp.data[1][1]=tmp.data[2][1]=1;
if(n==1){
printf("1\n");
continue;
}
ans=quick_power(ans,n-2);
tmp=mul(ans,tmp);
printf("%lld\n",tmp.data[1][1]);
}
return 0;
}
相關推薦
HDU 1005 Number Sequence(基礎矩陣快速冪)
//HDU 1005 15MS 1424K #include <cstdio> #include <cstring> #include <cmath> #in
【HDOJ 1005】 Number Sequence (裸矩陣快速冪)
原諒我貼個水題。。。攢了一年的'恩怨'終於瞭解了 b( ̄▽ ̄)d 去年就接觸過矩陣快速冪 線代太弱 看他們程式碼沒參悟透。。可能真是悟性太差了。。 然後一隻以為矩陣快速冪是很叼的東西(不過確實很叼) 太高深 再沒敢碰。。有毒啊………… 直到最近比賽(VJ)出現矩陣快速冪
HDU 6395 Sequence(數論+矩陣快速冪)
Description 定義序列F1=A,F2=B,Fn=C⋅Fn−2+D⋅Fn−1+⌊Pn⌋F1=A,F2=B,Fn=C⋅Fn−2+D⋅Fn−1+⌊Pn⌋,求FnFn Input 第一行一整數T
HDU 1005 Number Sequence(找規律,思維)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 153140 Accepted Submissio
Sequence(分段+矩陣快速冪)
Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1857 Accepted Subm
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) + B * f(n - 2)) mod 7.
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)) mod 7. Given A, B, and n, you are to
No more tricks, Mr Nanguo HDU - 3292(pell + 矩陣快速冪)
ger img map source ring rri fff gin bsp No more tricks, Mr Nanguo Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K
UVA10870—Recurrences(簡單矩陣快速冪)
src logs aps 矩陣 矩陣快速冪 分享 pow sizeof set 題目鏈接:https://vjudge.net/problem/UVA-10870 題目意思: 給出a1,a2,a3,a4,a5………………ad,然後算下面這個遞推式子,簡單的矩陣快速冪,裸題,
Chinese Rings (九連環+矩陣快速冪)
game 百度一 const problem scan make then indicate urn 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2842 題目: Problem Description Dumbear
hdu 1757 A Simple Math Problem (矩陣快速冪)
題目連結:hdu 1757 題意:見連結。 題解:直接構造矩陣,然後弄個矩陣快速冪就行了。 程式碼如下: #include<cstdio
ACM-ICPC 2018 焦作賽區網路預賽 L. Poor God Water(BM/矩陣快速冪)
通過本題,學到了一個非常NB的黑科技,杜教BM線性遞推模板 直接打表打出前幾項,丟入BM模板就過了,非常神奇,非常強大 網上說BM板子一般8個以上就穩了,賽後試了一下,這個題要丟入前10個數據才能AC。 #include <cstdio> #includ
Newcoder 18 F.Course(數論+矩陣快速冪)
Description A r i a
藍橋 壘骰子(dp+矩陣快速冪)
壘骰子賭聖atm晚年迷戀上了壘骰子,就是把骰子一個壘在另一個上邊,不能歪歪扭扭,要壘成方柱體。經過長期觀察,atm 發現了穩定骰子的奧祕:有些數字的面貼著會互相排斥!我們先來規範一下骰子:1 的對面是 4,2 的對面是 5,3 的對面是 6。假設有 m 組互斥現象,每組中的那
hdu6030(推導+矩陣快速冪)
Happy Necklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
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)) mod 7. Given A, B, and n, you are to ca
HDU-6395多校7 Sequence(除法分塊+矩陣快速冪)
review lse %d sca code left define hdu fin Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others
hdu 1005(矩陣快速冪)
題目傳送門 題目描述的是一個遞推,並且沒有其他變數與n有關,是一個典型的矩陣快速冪模板題(有多種解法,只提這一種)。 {1,1} * A{A,1} = {f(n),f(n-1)} {B,0} /** 矩陣快速冪 模板 **/ #incl
hdu 1005Number Sequence (矩陣快速冪)
F(n) a b F(n-1)
ICPC2017網路賽(瀋陽)1005&HDU6198 number (矩陣+快速冪)
We define a sequence F:⋅ F0=0,F1=1;⋅ Fn=Fn−1+Fn−2(n≥2). Give you an integer k, if a positive number n can be expressed byn=Fa1+Fa2+...+Fak where 0≤a1≤a2