快速幂
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
路痴是不可能路痴的,这辈子都不可能路痴的。(可达矩阵 快速幂 拆点)
题意 : 给定一个带权有向图 问从1到n的路径中恰好为w的方案数。 思路: 拆点 由于边权<=9 那么我们拆成9个点, 记得将每相邻的两个点从前面一个点连向后一个点,都边权为k的时候 将第k个点连向对应的点,然后矩阵快速幂。 ac代码: #include<bits/stdc++.h> using namespace std; const int N=110; const int mod=2009; int g[N][N]; int e[N][N]; int n,m; void mul(.原创 2020-11-21 15:44:59 · 301 阅读 · 0 评论 -
矩阵乘法快速幂 斐波那契数
矩阵运算 + 快速幂。 快速幂算法的模板可以参考这里。 用算法4我们1秒内最多可以算到 108 级别,那当 n 更大时该怎么办呢? 可以先利用矩阵运算的性质将通项公式变成幂次形式,然后用平方倍增(快速幂)的方法求解第 n 项。 首先我们定义向量 Xn=[anan−1],边界:X1=[a1a0] 然后我们可以找出矩阵: A=[1110] 则有: Xn=Xn−1×A 所以: Xn=X1×An−1 由于...原创 2020-03-04 09:57:15 · 331 阅读 · 0 评论 -
快速幂思维题
题目 题目 求快速幂的最后一位。 思路 把模数改为10就行了 #include<iostream> using namespace std; int qs(int a,int b) { int res=1; while(b) { if(b&1) res=(long long)res*a%10; b>>=1; a=(long long)a*a%10...原创 2020-02-16 19:48:38 · 234 阅读 · 0 评论 -
求逆元
当n为质数时,可以用快速幂求逆元: a / b ≡ a * x (mod n) 两边同乘b可得 a ≡ a * b * x (mod n) 即 1 ≡ b * x (mod n) 同 b * x ≡ 1 (mod n) 由费马小定理可知,当n为质数时 b ^ (n - 1) ≡ 1 (mod n) 拆一个b出来可得 b * b ^ (n - 2) ≡ 1 (mod n) 故当n为质数时,b的乘法逆...原创 2020-02-13 23:04:00 · 233 阅读 · 0 评论 -
快速幂
时间复杂度 log k 题目 #include<iostream> using namespace std; typedef long long LL; LL qs(int a,int b,int mod) { long long res=1; while(b) { if(b&1) res=res*a%mod; b>...原创 2020-02-13 22:56:06 · 181 阅读 · 0 评论