
模板
J_Sure
唯苦修深思方能顿悟
展开
-
层次遍历二叉树
白书介绍了对一可原创 2014-04-15 11:49:50 · 1043 阅读 · 0 评论 -
【双连通】双连通模板 Tarjan
比起求无向图关节点的算法,只是多了一个栈,用来储存不存在关节点的所有边,遇到关节点之后弹出所有边进行储存原创 2014-12-26 02:22:01 · 1405 阅读 · 0 评论 -
【关节点+桥】关节点和桥模板 Tarjan
无向图关节点和桥的求法原创 2014-12-21 01:55:57 · 1622 阅读 · 0 评论 -
【随机数】生成随机数模板
写个对拍程序的时候生成随机数的模板留在这儿原创 2014-12-26 11:43:14 · 1520 阅读 · 0 评论 -
Prim
输入:N(顶点) M(边)原创 2014-08-08 21:11:02 · 910 阅读 · 0 评论 -
【树状数组】树状数组一维二维模板
**以下模板都是点更新,区间查询,如果是区间更新点查询,只需将利用lowbit的循环方向倒过来** 一维:inline int lowbit(int x){ return x & -x;}void add(int x, int val){ for(int i = x; i <= n; i += lowbit(i)) C[i] += val;}int sum(int x){原创 2015-03-15 21:48:32 · 1290 阅读 · 0 评论 -
Dinic非递归版(优化)
void init() { memset(head, -1, sizeof(head)); tot = 0;}void add(int u, int v, int w){ edge[tot].v = v; edge[tot].w = w; edge[tot].next = head[u]; head[u] = tot++;}bool bfs() {原创 2014-09-14 22:29:03 · 1153 阅读 · 0 评论 -
【LCA】Tarjan离线算法(并查集+dfs)模板
vector <int> Q[N];int Find(int x){ if(x != fa[x]) return fa[x] = Find(fa[x]); return x;}void Union(int x, int y){ int fx = Find(x), fy = Find(y); if(fy != fx) fa[fy] = fx;}void dfs(原创 2015-03-07 13:32:14 · 1253 阅读 · 0 评论 -
【最小割】Stoer-Wagner模板
int min_cut(int now){ int ret = INF; for(int i = 0; i < n; i++) node[i] = i; while(now > 1) { int k, pre = 0; memset(vis, 0, sizeof(vis)); memset(dis, 0, sizeof(dis原创 2015-02-14 16:22:01 · 1261 阅读 · 0 评论 -
【匈牙利算法】匈牙利模板dfs、bfs
匈牙利模板 dfs、bfs原创 2014-10-31 17:22:33 · 1710 阅读 · 1 评论 -
母函数详解和史上最通用最高效的母函数模板
版权所有。所有权利保留。欢迎转载,转载时请注明出处:http://blog.youkuaiyun.com/xiaofei_it/article/details/17042651母函数,又称生成函数,是ACM竞赛中经常使用的一种解题算法,常用来解决组合方面的题目。本文讲解母函数,但不讲解该算法的基础理论。读者随便找一本组合数学教材便可找到相应的内容,或者直接在网上搜索一下。母函数转载 2014-08-16 18:18:59 · 906 阅读 · 0 评论 -
【AC自动机】AC自动机模板
AC自动机模板原创 2014-12-20 18:08:47 · 1278 阅读 · 0 评论 -
【IO外挂】大量输入输出外挂模板
void scanf_(int &num){ char in; //bool neg = false; while( ((i = getchar()) > '9' || in < '0') && in != '-'); /* if(in == '-') { neg = true; while((in = getchar())转载 2014-03-14 21:42:29 · 1752 阅读 · 0 评论 -
【Treap】Treap模板
实现了名次树原创 2015-03-17 21:21:58 · 774 阅读 · 0 评论 -
【强连通】强连通模板 Tarjan
比起双连通的Tarjan我倒是觉得反而简单多了。思想和双连通分量是同一个模式。#include #include #include #include using namespace std;const int N = 1e5;int dfn[N], scc_id[N];int deep, scc_cnt;stack s;int dfs(int u){ int原创 2014-12-26 18:07:29 · 1103 阅读 · 0 评论 -
【KMP】KMP算法模板
KMP算法模板原创 2014-12-19 00:33:41 · 855 阅读 · 0 评论 -
【Trie】Trie字典树模板 静态指针池、数组写法
字典树模板 静态指针池、数组写法原创 2014-12-19 15:42:56 · 2504 阅读 · 0 评论 -
并查集模板[路径压缩]
1 int father[MAX]; 2 int rank[MAX]; 3 4 5 6 void Make_Set(int x)7 {8 father[x] = x; //根据实际情况指定的父节点可变化9 rank[x] = 0; //根据实际情况初始化秩也有所变化10 }11 12 13 14 int Find_Set(int原创 2014-03-19 14:52:46 · 1268 阅读 · 0 评论 -
邻接表 lrj
#include const int M = 505, N = 105;int u[M], v[M], fir_out[N], fir_in[N], out[M], in[M];void read_G(int &i){ scanf("%d%d", &u[i], &v[i]); out[i] = fir_out[u[i]]; fir_out[u[i]] = i; in[i] = f原创 2014-08-02 14:54:12 · 662 阅读 · 0 评论 -
Bellman-Ford模板
/*ID: j.sure.1PROG:LANG: C++*//****************************************/#include #include #include #include #include #include #include #include #include #include #include #define INF原创 2014-08-12 10:29:16 · 932 阅读 · 0 评论 -
Dijkstra模板
输入N个顶点输入点u,点v以及原创 2014-08-11 10:56:55 · 879 阅读 · 0 评论 -
SPFA模板
int inq[N], n, m, tot, hh[N], dis[N];struct node{ int u, v, w, next;} edge[2*M];void init(){ memset(hh, -1, sizeof(hh)); tot = 0;}void add(int u, int v, int w){原创 2014-08-02 14:50:21 · 830 阅读 · 0 评论 -
Dijkstra + Heap优化模板
const int N = 105;bool done[N];struct Edge { int to, w; int next;}edge[N];struct Heap { int d, u; bool operator < (const Heap &tmp) const { return d > tmp.d; }//重载'<',维护最小堆};void Dijkstr原创 2014-08-16 16:49:11 · 1092 阅读 · 1 评论 -
八数码问题(bfs+哈希)
白书上给出了灰常飘逸原创 2014-04-16 15:28:57 · 4820 阅读 · 0 评论 -
【高精度乘法模板】AOJ-406 Multiplication
MultiplicationTime Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 64 MBDescriptionTo calculate the result of two numbers by multiply themInputThe input consists原创 2014-10-26 11:54:45 · 809 阅读 · 0 评论 -
费用流模板 spfa+EK
const int N = 1000, M = 1e5;struct Node { int u, v, w, c; int next;}edge[M];int pre[N], path[N], dis[N];bool inq[N];bool spfa(int S, int T, int n){ int u; for(int i = 0; i < n ; i++) { in原创 2014-10-17 21:55:13 · 889 阅读 · 0 评论 -
拓扑排序
描述:对输入的邮箱图进行托原创 2014-08-06 10:59:43 · 766 阅读 · 0 评论 -
线性筛素数模板
const int N = 10001;int p[1500];bool vis[N];void get_prime() { vis[1] = 1; int k = 0; for(int i = 2; i < N; i++) { if(!vis[i]) p[k++] = i; for(int j = 0; j < k && p[j]*i原创 2014-11-17 08:50:09 · 844 阅读 · 0 评论 -
简要高效vim配置文件 .vimrc
set nuset aiset siset cinset ts=4 set shiftwidth=4 set softtabstop=4 set incsearchset autochdirset nobackupset noexpandtab set nocompatibleset pastetoggle=sy oncolor slate原创 2014-08-11 09:02:03 · 1373 阅读 · 0 评论 -
手写快速排序【随机数作基数】
/*ID: j.sure.1PROG:LANG: C++*//****************************************/#include #include #include #include #include #include #include #include #include #include #include #include #d原创 2014-11-02 15:49:12 · 1191 阅读 · 0 评论 -
【线段树】线段树模板 胡浩版
线段树模板 胡浩版原创 2014-12-19 16:53:14 · 1856 阅读 · 0 评论 -
【后缀数组】后缀数组模板
后缀数组模板。包括LCP。原创 2014-11-22 10:29:13 · 873 阅读 · 0 评论