1.當我們求解分數的冪時,可以利用`逆元`
來求解;
2.用線性篩求出範圍內的所有素數,再遍歷求出孿生素數的個數prim_num;
3.化簡下 primnum/t*(t-1)/2,化簡得 2*prim_num / t*(t-1)
4.再用快速冪求解即可;
**展示
#include
using
namespace std;
typedef
long
long ll;
const ll maxn=
1e7;
const ll inf=
1e9+7;
/**/
//非遞迴快速冪
ll qpow
(ll a,ll b,ll c)
return ans%c;
}ll prim[maxn]
;bool vis[maxn]
;void
qprim()
}}intmain()
//cout/ ll f1=(((t*(t-1))%inf)*qpow(2ll,inf-2,inf))%inf;
// ll f2=(prim_num*qpow(f1,inf-2,inf))%inf;
ll f2=((
2*prim_num)
%inf*
qpow
((t*
(t-1))
%inf,inf-
2,inf)
)%inf;
cout<
}return0;
}
1.逆元確實在演算法競賽中很重要,尤其是和費馬小定理等結合;
2.快速冪在使用時要注意mod使用,千萬不能遺漏;
快速冪 逆元
逆元 乘法逆元 有 a x 1 mod c 稱 x 為 a 與 c 的乘法逆元。理論依據 mod 對於加減乘除都可進行分配 f a mod c f mod c a mod c 如果存在 ax 1 mod c 那麼兩邊同時乘起來,得到 fx mod c 成立條件 1 模方程 a x 1 mod c 存...
演算法 快速冪,快速冪求逆元
基本思想 3 11 11 1011 3 1 3 3 2 9 3 4 81 3 8 6561 3 11 3 9 6561 第一種 當資料範圍m,k,p 10 9 int qmi int m,int k,int p return res 值得一提 k 1 除以2向0取整 詳細可以看狀態壓縮dp 內含位運...
快速冪求逆元
概念 得到 給定nn組ai,piai,pi,其中pipi是質數,求aiai模pipi的乘法逆元,若逆元不存在則輸出impossible。注意 請返回在0 p 10 p 1之間的逆元。乘法逆元的定義 若整數b,mb,m互質,並且對於任意的整數 aa,如果滿足b ab a,則存在乙個整數xx,使得a b...