湘潭校賽 又見斐波那契(矩陣快速冪)

2021-08-19 11:15:27 字數 657 閱讀 6042

思路:這題一看資料範圍就知道是個矩陣快速冪,通過構造矩陣知我們需要的轉移矩陣為下圖形式,不過需要特判1然後輸出的是n-1的結果哦,因為這個我本題wa了==!矩陣快速冪最難得就是構造矩陣,當矩陣構造出來之後基本上就好做了~

**實現如下:

#include #include typedef long long ll;

const int mod = 1e9 + 7;

int t;

ll n;

void mul(int f[6], int a[6][6])

}memcpy(f, c, sizeof(c));

}void mulself(int a[6][6]) }}

memcpy(a, c, sizeof(c));

}int main() ;

int a[6][6] = , , , , , };

scanf("%lld", &n);

n = n - 1;

for(; n; n >>= 1)

printf("%d\n", f[0]);

}return 0;

}

又見斐波拉契(矩陣快速冪)

傳送門 2018年湘潭大學程式設計競賽 g 這是乙個加強版的斐波那契數列。給定遞推式 求f n 的值,由於這個值可能太大,請對 10 9 7 取模。第一行是乙個整數t 1 t 1000 表示樣例的個數。以後每個樣例一行,是乙個整數 n 1 n 10 18 每個樣例輸出一行,乙個整數,表示f n mo...

斐波那契(矩陣快速冪)

斐波那契數列,即fib n fib n 1 fib n 2 fib n fib n 1 fib n 2 fib n fib n 1 fi b n 2 就這麼乙個數列,顯然可以直接遞推求解,時間複雜度o n o n o n 似乎沒什麼問題。然後就遇到了這個,n nn的取值範圍最大是2 1 09 2 t...

牛客題 又見斐波那契 (矩陣快速冪)

題目鏈結 2018年湘潭大學程式設計競賽 又見斐波那契 給定遞推式 求f n 的值,由於這個值可能太大,請對109 7取模。因為資料範圍非常大 10的18次方 所以,一定存在o 1 或者o logn 的演算法的,而在 logn 中我們最可能用到的就是快速冪了,這個比較複雜一些,需要用到矩陣快速冪。那...