原创 同餘
即 性質: 整除性 傳遞性 保持基本運算 放大縮小底數 k爲正整數,n爲正整數, 放大縮小模數 k爲正整數, 同餘關係式: 威爾遜定理 費馬
原创 因式分解,算術基本定理,積性函數(POJ 1452 Happy2004)
積性函數:是指對於所有互質的整數a和b有性質f(ab) = f(a) * f(b) 算術基本定理:任何一個大於1的正整數都能唯一分解爲有限個質數的乘積,即N = p1^x1 * p2^x2 * p3^x3 * .... * pn^x
原创 威爾遜定理
判定一個自然數是否爲質數的充分必要條件,即當且僅當p爲質數時, 例題:
原创 盧卡斯定理及其盧卡斯定理的拓展
前言: 求一個組合數 ,我們可以通過逆元的方式在 O(n)的時間複雜度內求出 但如果數特別大時(數據範圍 ),又該怎麼辦 使用盧卡斯定理求解 盧卡斯定理:(組合數取模,取模的模數只能是質數) 即 模板: #in
原创 蔡勒公式
w:指星期,對7取模,0 -> 星期一 1 -> 星期二 2 -> 星期三 3 -> 星期四 4 -> 星期五 5 -> 星期六 6 -> 星期日 c:指世紀 y:指年份 一般情況下取後兩位,y % 100 m:指
原创 快速冪(二進制,十進制)
矩陣快速冪: #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long LL; const int ma
原创 2019牛客第四場I題 string
鏈接:https://ac.nowcoder.com/acm/contest/884/I 題意:求string串有多少個本質不同的子串,且這些子串之間兩兩不存在 a==rev(a),即不存在長度1以上的迴文串 題解: 要算string
原创 後綴自動機
自動機:由五部分組成,字符集,狀態集合,初始狀態,結束狀態集合,狀態轉移函數。 令 S :母串 Suf:後綴的集合 Fac:連續子串的集合 Suffix(a):從位置a開始的後綴爲Suffix(a) S[
原创 快速乘法(防止數過大相乘超出long long)
inline LL ksc(LL x,LL y,LL mod){ return (x*y-(LL)((long double)x/mod*y)*mod+mod)%mod; }
原创 三分查找
三分查找是二分查找的一個擴展,是基於分治思想的高效查找方法。 三分查找適用於凸函數或凹函數,它可以取得當前函數的最大值或最小值。 三分搜索實現主要是判斷midl 和 midr 值的大小, 模板: double solve(){
原创 用水填坑 (牛客)
https://ac.nowcoder.com/acm/contest/403/A 解析:該題很明顯是一道搜索題。首先我們必須明確在什麼情況下會形成水窪:即當某一點的高度小於等於( <= )上下左右四個方向時,會形成水窪。
原创 2018第九屆藍橋省賽題目
標題:第幾天 2000年的1月1日,是那一年的第1天。 那麼,2000年的5月4日,是那一年的第幾天? 注意:需要提交的是一個整數,不要填寫任何多餘內容。 該題很簡單:125 標題:明碼 漢字的字形存在於字庫中,即便在
原创 單調隊列(轉載)
單調隊列 在對DP的優化中經常會用到。
原创 矩陣元素求積及其矩陣元素的差分
求積函數:prod(......, dim); %dim表示維度 如: A = magic(3); B = prod(A); %默認按列乘積 8 * 3 * 4 C = prod(A, 2); %
原创 sym()的應用
定義:該函數是用來符號數字、符號變量、符號對象。符號對象的類型是sym,可以通過class(S)來驗證,這裏S是一個符號對象。符號變量的優點是,使用符號變量運算得到的只是一個解析解。 優點:使用符號變量進行運算能夠最大限度的減少運算