思路:
說一下題意,就是問乙個質數p,求剛好不大於p的質數q的階乘對p取模的值
首先我們要知道威爾遜定理:對於乙個質數p,(p - 1) ! % p = p - 1
於是,我們可以得出
q ! * (q+1) * (q + 2) * … * (p - 2) * (p - 1) % p = p-1
現在答案就很明顯了,ans = (p - 1) * inv(p - 1) * inv(p - 2) * … * inv(q + 2) * inv(q + 1)
q的話就直接暴力求就好了,然後還要注意一下
#include
using namespace std;
#define ll long long
intcheck
(ll x)
ll ksc
(ll a,ll b,ll p)
ll qpow
(ll a,ll b,ll p)
return ans;
}ll inv
(ll x,ll p)
intmain()
}}return0;
}
公尺勒羅蘋素數檢測
#include
using namespace std;
#define ll long long
ll ksc
(ll a,ll b,ll p)
ll prime[5]
=;ll qpow
(ll a,ll b,ll p)
return ans;
}bool miller_rabin
(ll p)
if(m != p -1&&
!(t &1)
)return0;
}return1;
}ll inv
(ll x,ll p)
intmain()
}}return0;
}
2020杭電多校
hdu 6836 對於一張圖,每個生成樹的權值為所有邊按位與的結果,求生成樹期望權值。樸素解法 暴力求出每乙個生成樹,累積權值和,然後除生成樹總數。int型別只有31位,既然是與的結果,對於每一條生成樹所有的邊該位都應該是1,按位列舉每一位,求出該位為1的生成樹權值大小,將結果累積到答案裡。incl...
杭電多校2020 2 Lead of Wisdom
題意 n件物品,每種物品有乙個種類ti 四個屬性 ai bi ci di 每個種類最多選一件物品,求 四個屬性分別求和 再與100相加 最後 乘積 思路 dfs 種類i物品數量不超過50 跳過沒有的種類 沒過 include include include include include inclu...
Tetrahedron(2020杭電多校)
題意 給你直角四面體的三邊a,b,c,三者兩兩垂直,問a,b,c從 1,n 隨機挑選,求三者交點到底面的距離的平方的逆元。直角四面體有條結論是1 h2 1 a2 1 b2 1 c2 然而比賽的時候沒想到怎麼算期望,捂臉。演算法 e 1 h2 e 1 a2 e 1 b2 e 1 c2 3 e 1 a2...