板子

KMP板子

P3426 #include <cstdio> #include <cstring> #include <vector> #define sd std:: namespace m{ // } constexpr int LEN = 1e6; sd vector<int> prepare(char* ......
板子 KMP

高精度板子

百度百科> #include<iostream> #include<vector> #include<string> using namespace std; struct wint:vector<int> { wint(int n=0) { push_back(n); check(); } win ......
高精 板子 高精度

bitset 相关板子

二分图匹配 dfs 版: https://uoj.ac/submission/619931 #define N 505 int n,m; int bel[N]; bitset<N>e[N],nvis; bool match(int u){ for(int i=(e[u]&nvis)._Find_fi ......
板子 bitset

换根 DP 板子

以前一直以为这玩意是随机应变的。 结果还真能总结出板子。 当然也有一定的局限性,比如 $dp$ 值必须 $O(1)$ 算。但不影响正常使用。 ins:向 $k$ 的子树信息中插入/删除 $nx$ 的子树信息。 这里的 子树 在 dfs1 中是指以 $1$ 为根的子树;dfs2 中是指以 $k$ 为根 ......
板子 DP

几个板子

FHQ Treap 普通平衡树 struct treap { int l, r, siz, dat, val; } tr[N]; int idx, rt; int get_new(int val) { tr[++ idx].val = val; tr[idx].dat = rand(); tr[id ......
板子

线段树区间和,区间修改,区间查询板子

#include <bits/stdc++.h> using namespace std; using LL = long long; #define lson (nd<<1) #define rson (nd<<1|1) #define mid (l+r>>1) const int N = 1e5 ......
区间 线段 板子

一道一板一眼的数位dp和二分结合的板子题

题目 1811E - Living Sequence 题意 找出第n个,数位中不含‘4’的数字 思路 数位dp + 二分 唯一要注意的就是纯dfs搜索会卡常(hh,就是复杂度太高了),用上一点记忆化 代码 const int N = 14; int dp[N][N]; int a[N]; int l ......
一板一眼 板子 数位 一道

对拍板子

以防忘记 三个cpp文件 a.cpp表示待拍文件, b.cpp表示暴力版本,data.txt表示生成的数据。 #include <bits/stdc++.h> using namespace std; void generateData(){ ofstream fout("input.txt"); ......
板子

ACM板子大公开!

目前只有非常少的一部分,正在逐渐完善中... 数学 求组合数 ll fact[N], infact[N]; ll qmi(ll a, ll k, ll p){ ll res = 1; while(k){ if(k & 1) res = (ll)res * a % p; a = (ll)a * a % ......
板子 大公 ACM

树板子

题解:照着写树板子 #include<bits/stdc++.h> using namespace std; using LL=long long; const int N=30; const int maxN=1e5+5; int n,m; int a[maxN],dep[maxN]; int f ......
板子

启发式合并板子(梦幻布丁)

Link 启发式合并是针对n个集合(总元素个数是O(n))的合并操作,每次将小的集合合并到大的集合 复杂度证明: 考虑每一个元素$$e \in E$$的贡献,如果在某一次合并中该元素被移动,那么集合的大小至少是$$2|E|$$,故复杂度是$$O(nlogn)$$ 具体的题目而言,我们可以看出对于$$ ......
板子 布丁 梦幻