原创 最大獨立數

最大獨立數即在二分圖匹配中,選取最多的點,使任意所選兩點均不相連。 我們可以看到,爲了選取最多的點讓任意兩點都不相連,即在選取最大的匹配數基礎上儘量多的選取不連接的點。 不妨設點數的總數爲n,最大的匹配數必然是二分圖中兩兩匹配,設爲2m。

原创 kmp及擴展kmp

kmp kmp匹配主要匹配的是兩個字符串,我們將需要匹配的記錄爲s1,用於匹配的串爲s2. kmp匹配的是從以當前s1中的ch字符爲末尾的字符串能夠在s2中匹配的最大前綴的長度。 也即是s1中的每個前綴的最長後綴所匹配的s2的最長前綴。

原创 圖論

1.floyed求環 int n; int ans; ll a[maxn]; ll g[maxm][maxm],dist[maxm][maxm]; int main() { for(int i=1;i<=n;i++)

原创 LCA

1.倍增法求LCA struct edge { int to; int next; }; int tot,head[maxn]; edge e[maxn<<1]; void init() { tot=0;

原创 數位dp

數位dp的思想在於:對於例如725這個數,我們計算1-725或者0-725之間的所有情況。 從最高爲開始:有0,1,2,3,4,5,6,7. 其中:兩個數字最爲關鍵:0,7,而其他數字則是包含了以後所有的情況。 故我們需要對這兩個數字採用

原创 系統生物和生物學中的數理知識

1.生物系統學的必要性 生物還原論:生物單個細胞組分的信息生成、化學成分和它們的生物功能。 生物整體論:一個系統的性質不簡單地等於組成部分性質的疊加。   2.基因迴路 遺傳和細胞間的功能是分層的,並且涉及到很多的層次。 給定DNA序列,

原创 概率dp

概率dp的內容 概率dp 研究有關於概率,步數,期望的等問題。 數學期望 P=Σ每一種狀態*對應的概率。 因爲不可能枚舉完所有的狀態,有時也不可能枚舉完,比如拋硬幣,有可能一直是正面,etc。 但是現在發現大多數題就是手動找公式或者DP推

原创 構造

構造題 1.將1-n分成k分,使得每份的和相同 HDU - 6616 對於給定的n和k,其中k是n的因子,求出n/k的值。 考慮將這n個數分成k*(n/k)的矩陣,也即是n行 n/k列。容易知道如果採用蛇形排列,即可使得相鄰兩列的每行求和

原创 容斥,積性函數,卷積,數論

質數,歐拉函數,莫比烏斯函數等積性函數篩法 積性函數都可以在複雜度內計算出來。 如何線性篩? 首先計算,其次當爲質數的時候可得. 接下來篩的時候,如果則. ,我們需要手動推出等他們之間的關係。 //歐拉篩打表o(n) int tot,p

原创 數據離散化

離散化思想 將已知數值進行排序,從而獲取每個數值在已知數值中的地位。 數值離散化 struct Discretization { vector<int> mp; int len; void clear(){mp.

原创 hash-哈希

數值映射的hash const int hashsize=31643,maxnode=100000; struct Hash { struct HashNode{ll key;ll val;int next;}; Has

原创 凸包

圖報的定義 凸包(Convex Hull)是一個計算幾何(圖形學)中的概念。 在一個實數向量空間V中,對於給定集合X,所有包含X的凸集的交集S被稱爲X的凸包。X的凸包可以用X內所有點(X1,...Xn)的凸組合來構造. 在二維歐幾里得空間

原创 數論

GCD問題和LCM問題 兩個數的gcd g=gcd(a,b) 則g<=a && g<=b ll gcd(ll a,ll b) { return b==0?a:gcd(b,a%b); } 由該算法我們可以知道,給定a,b由a,b進