【模板】【證明】任意模數下的二次剩餘求解
什麼是二次剩餘問題
就是求解形如
x2≡a (mod p)
的關於
x的方程。
下面從不同的模數開始分類討論解決二次剩餘問題的方法
幾個定義
如果關於
x的方程
x2≡a (mod p)有解。
稱 a是模 p意義下的二次剩餘,否則稱為模 p意義下的二次非剩餘。
為什麼會出現二次非剩餘,其實很簡單。
考慮在 %p意義下本質不同的數只會有 p個。而其中 (−t)2≡t2(mod p),根據抽屜原理,總會有至少 O(2p)的數無法被 t2%p表示出來
勒讓德符號(
Legendre symbol):
(pa)=⎩⎪⎨⎪⎧1−10a是%p下的二次剩餘a是%p下的二次非剩餘a≡0(mod p)
稍後會告訴怎麼求勒讓德符號。
1.模數為奇質數
首先來考慮 p是奇質數的情況。
解的存在性問題
尤拉準則:
尤拉準則: (pa)≡a2p−1(mod p)
當 p∣a的時候尤拉準則顯然成立。
否則由費馬小定理我們有 ap−1≡1(mod p)
所以必然有 a2p−1≡±1(mod p)
先證明 (pa)=1的情況
必要性:
當 a是 %p意義下的二次剩餘,即 ∃x,x2≡a(mod p)
那麼我們有 a2p−1≡(x2)2p−1≡xp−1≡1(mod p)
必要性證明完畢
充分性:
設 p有一個原根 g,那麼必然有 gi≡a(mod p)
則: g2i(p−1)≡1(mod p)
由於 g為原根,所以必然會有 (p−1)∣2i(p−1)
即 i是偶數。
必然存在解
x0≡g
什麼是二次剩餘問題
就是求解形如
x
2
傳送門
解析:
這道題由於模數一定是質數,所以我們只需要特判掉模數為2的情況,剩下的就是模奇質數二次剩餘了。
關於二次剩餘可以看我的部落格
程式碼:
#include<bits/stdc++.h>
using namespace std;
#d 題目:https://www.luogu.org/problemnew/show/P4245
大概是用3個模數分別做一遍,用中國剩餘定理合併。
前兩個合併起來變成一個 long long 的模數,再要和第三個合併的話就爆 long long ,所以可以用一種讓兩個模數的乘積不出現的方法:https://b 題目大意:給你兩個多項式$f(x)$和$g(x)$以及一個模數$p(p\leqslant10^9)$,求$f*g\pmod p$
題解:任意模數$NTT$,最大的數為$p^2\times\max\{n,m\}\leqslant10^{23}$,所以一般選$3$個模數即可,求出這三個模數下的答案,然後中國剩餘 == tor efi oid n) fine wap 模板 input Code:
#include<bits/stdc++.h>
#define setIO(s) freopen(s".in","r",stdin)
#define maxn 100 題目大意
求多項式 \(\prod_{i=1}^n(x+i)\) 的係數在模 \(p\) 意義下的分佈,對 \(998244353\) 取模。
\(p\) 為質數。
\(n\leq {10}^{18},p\leq 250000\)
題解
我們只計算 \([1,p-1]\) 的分佈,最
描述
求解關於xx的方程:
x
2
rpg soc key words 練習 evm cdc rmi css x床堂0jz直寐0裙brhttp://tushu.docin.com/sghp1512
6茲c苯晌62恢uk爻2http://tushu.docin.com/ipt586
gw誹喜2i4偎e2擻a com 技術 bsp 高效 題解 數量 div image 概率
【題解】
1,先說說莫隊算法。
莫隊算法是用來離線處理區間問題的算法。非常易於理解和使用,且運用十分廣泛。
假設我們現在已知區間[L,R]的答案,如果我們能以較低的時間復雜度擴展得到區間
題目:並查集
思路:
複習……
第一次提交忘寫路徑壓縮T了……
結論:打過再多遍的模板也要檢查一下啊……
程式碼:
#include<bits/stdc++.h>
using namespa
題目:樹的中心
樹的重心
找到一個點,其所有的子樹中最大的子樹節點數最少,那麼這個點就是這棵樹的重心,刪去重心後,生成的多棵樹儘可能平衡。
所以dfs下就好了。
程式碼:
#include<bits/stdc++.h>
using names
題目:字尾排序
程式碼:
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000000
int n,m;
char a[maxn+5];
int sa[maxn+5],rk[maxn+5];
尤拉準則
對於質數
p
p
p,
相信許多小夥伴和我一樣,明明在本地執行頁面一切正常,而到線上(本人是用的虛擬主機)出現瞭如下圖的問題:
其實這個問題出現的原因很簡單,就是我們開發是在windows 系統下,windows系統對大小寫不敏感,而虛擬主機Linux,區分大小寫,所以解決辦法很簡單,如下圖所示:
解決方法就
題面傳送門
解析:
直接解方程可以得到
a
u
1.安裝git服務:
https://blog.csdn.net/oqqHun123/article/details/85791425
2.開啟github官網:
https://github.com/
3.輸入自己需要檢索的關鍵字
注:adm
下載地址 :
回覆後繼續分享,你們的回覆就是我的動力。
課程目錄 :
微信二次開發基礎部分.avi0 k4 @, t2 o0 R7 i. S3 E) Y8 ~01-18 Java微信二次開發微信驗證.wmv, I( Q1 _; N! c' u, {9 U$
基於CKplayer6.8 更改了播放器 二次編譯 去除分享和亮燈按鈕
基於CKplayer 更改了播放器的設定,重新編譯去掉了播放器中的分享和燈光
現分享出來:
連結:http://pan.ba
Sewise Player是一款專業的免費網頁HTML5視訊、流播放器,它功能強大,體積小,跨平臺,相容性好,使用方便簡潔。
播放器是主要以HTML5技術為平臺開發,同時相容Flash技術,實現了跨平臺各瀏覽器相容的視訊播放。使用Sewise Player您可以在Wind lld puts || .org font algo std mod char 題目:https://www.luogu.org/problemnew/show/P4245
用三模數NTT做,需要註意時間和細節;
註意各種地方要取模!傳入 upt() 裏面的數一定要不超過2 相關推薦
【模板】【證明】任意模數下的二次剩餘求解
2018.12.19【Timus1132】Square Root(模奇質數二次剩餘)(Cipolla)
洛谷 4245 【模板】任意模數NTT
[洛谷P4245]【模板】任意模數NTT
luogu P4245 【模板】任意模數NTT MTT
【集訓隊作業2018】取名字太難了 任意模數FFT
2018.12.30【NOIP訓練】任意模數二次剩餘(高階數論大雜燴)
【模板練習——AC自動機】Keywords Search HDU - 2222
BZOJ 2038 2009國家集訓隊 小Z的襪子【模板·莫隊】
【模板·並查集】洛谷 P3367 【模板】並查集
【模板·樹的重心】 codevs 3639 樹的中心
【模板·字尾陣列/sa】洛谷 P3809 【模板】字尾排序
【模板】二次剩餘Cipolla演算法/尤拉準則-bzoj5104: Fib數列
TP5本地執行正常,線上執行某頁面出現【模板檔案不存在】問題的解決辦法
2018.12.30【NOIP訓練】【SCOI2018】Numazu 的蜜柑(二次剩餘)
【git】基於github開源平臺的專案進行二次開發
【2018最新】基於java的微信公眾號二次開發視訊教程
【播放器】基於CKplayer6.8 更改了播放器 二次編譯 去除分享和亮燈按鈕
【播放器】關於 sewisePlayer HLS視訊播放器的二次開發(一)
洛谷 P4245 [模板]任意模數NTT —— 三模數NTT