1. 程式人生 > 其它 >簡單資料結構模板彙總

簡單資料結構模板彙總

不包括字串和圖論內容。
某種意義上算是“簡單”資料結構……
程式碼壓行警告qwq

如果存在與資料結構有關的經典演算法,也會予以列出。

1. 單調佇列






```

### 2. 單調棧

### 3. 對頂堆

### 4. 並查集

路徑壓縮+按秩合併,**近似**O(n)
```cpp
const int maxn=100010;
int n,fa[maxn],siz[maxn];
void init(int xx){for(int i=1;i<=xx;i++){fa[i]=i;siz[i]=1;}}
int find(int xx){return fa[xx]==xx?xx:fa[xx]=find(fa[xx]);}
int query(int xx,int yy){return find(xx)==find(yy);}
void merge(int xx,int yy)
{
    int fx=find(xx),fy=find(yy);
    if(fx==fy)return;
    if(siz[fx]<siz[fy]){fa[fx]=fy;siz[fy]+=siz[fx];fa[xx]=fy;}
    else{fa[fy]=fx;siz[fx]+=siz[fy];fa[yy]=fx;}
}

5. ST表

6. 樹狀陣列

6.1 樹狀陣列模板

6.2 樹狀陣列求逆序對

7. 線段樹

7.1 複雜標記線段樹

7.2 動態開點權值線段樹

7.3 掃描線

7.4 二維線段樹

8. 樹鏈剖分

8.1 輕重鏈剖分

8.2 dsu on tree

8.3 長鏈剖分

9. 分塊相關

見這裡

10. 左偏樹