-----------模板库-----------
MaxMercer
成都七中学生,OIer
展开
-
强连通分量 & 割点/桥 & 点/边双连通分量 [模板]
#include<stdio.h> //强连通分量 void tarjan(int u) { low[u] = dfn[u] = ++ idx; s.push(u); for (int i = h[u]; i; i = e[i].nxt) { int v = e[i].v; if(!dfn[v]) tarjan(v), low[u]原创 2017-11-09 17:16:26 · 275 阅读 · 0 评论 -
数论[模板]
如有错误请指出, 万分感谢!#include<stdio.h> #include<cmath> #include<algorithm> typedef long long lnt; const int mod = 1e9 + 7; const int maxn = 1e6 + 5; bool mark[maxn]; lnt fac[maxn]; //gcd lnt gcd(lnt a, lnt b原创 2017-11-09 21:00:39 · 261 阅读 · 0 评论 -
支配树[模板]
发个模板不算漏题吧. 今天考了一发必经点… 幸好lemonoil考过, 打了个支配树的板子, 但是当时当且只是因为好背所以背下来了, 关于那几个定理实际上并没有证明. 今天考完后复习了一发虽然也没有证明但是重新理解了一下, 在明白半必经点和必经点的定理后, 已经能较准确的写出板子来, 不想考试的时候憋了半天… 话说今天好像要被婊了… 毕竟学的是lemonoil的板子, 基本上没什么差别, 关键是原创 2017-11-02 21:28:04 · 470 阅读 · 0 评论 -
线段树[模板]
前言线段树是一个非常实用的数据结构, 并且使用频率非常高. 所有操作都能在log时间内完成, 虽然常数要比树状数组大, 但是比起很多平衡树来说常数还是小了不少. 线段树的应用范围很广, 许多操作都能够支持. 关键是, 线段树好写好调, 完全不恶心. 除非操作非常简单, 尽量不要用树状数组. 线段树虽然代码要比树状数组大但还是很好写的, 关键是线段树要比树状数组应用范围广的多. 关于区间操作尽量用原创 2017-11-02 22:26:16 · 287 阅读 · 0 评论