各種實用的模板和黑科技(緩更)

2021-07-16 20:32:08 字數 1119 閱讀 8983

這個部落格是記錄我的各種模板和黑科技,遇到有關就更新乙個點。

1.spfa

q.push(st);

while (q.size())}}

vis[now]=false;

}

這個模板的核心就是用了優先佇列,充分發揮了優先佇列的存放特點。

2.堆排序

#include 

#include

#include

#include

using

namespace

std;

int main()

while(!q.empty())

}

這裡充分了利用佇列從大到小的特點來排序,因為是從小到大,所以用負號,但是有點點慢。

3.線篩

int cnt = 0;

for (int i = 2; i < n; i++)

}

4.快速冪

ll ksm(ll x,ll n)  //求x^n % mod;

return res;

}

時間複雜度(log n)。

5.高精度乘法

node chengfa(node n1,int

x)i=no.len;

while(no.a[i+1]>0)

while(no.a[i]==0&&i>1) i--;

no.len=i;

return

no;}

運用了位運算,還可以進行壓位處理,時間會快很多

6.set容器

#include//標頭檔案

using

namespace

std;

int main()

7.kmp模板

int j = 0;

f(i,2,len)

8.拓撲排序

void top_sort()

} }

紅黑樹的各種操作

紅黑樹各種操作 include stdafx.h include using namespace std enum mycolor typedef int dtype struct rbtree 查詢節點資訊 rbtree search rbtree r,dtype val return x 左旋轉...

紅黑樹插入和刪除的各種情況分析

紅黑樹是一種自平衡的二叉查詢樹,是一種高效的查詢樹,定義如下 每個節點是紅色或黑色 根是黑色 所有葉子都是黑色 葉子是nil節點 如果乙個節點是紅色的,則他的兩個兒子是黑色的 從每個葉子到根的所有路徑上不能有兩個連續的紅色節點 從任一節點到其每個葉子的所有簡單路徑都包含相同數目的黑色節點 簡稱黑高 ...

大數的各種操作模板

kunagbin 的板子 include include include include include include include include include using namespace std typedef long long ll define maxn 9999 define ...