模板
文章平均质量分 82
Kewowlo
这个作者很懒,什么都没留下…
展开
-
并查集模板
[cpp] view plaincopyprint?1、make_set(x) 把每一个元素初始化为一个集合 建立一个新的集合,其中集合只有唯一的一个元素x 2、union_set(x, y) 按秩合并x,y所在的集合 3、find_set(x)返回x所在的集合的代表 在执行查找操作时,要沿着父节点指针一直找下去,直到找到树根为止。转载 2013-11-24 21:59:32 · 925 阅读 · 0 评论 -
【SBT】 POJ 3481 Double Queue
点击打开链接1 表示插入 点2表示求最大值的点标 并删除3表示求最小值的点标 并删除0表示结束模板题。增加了一个val 表示为输出的值#include #include #include #include #include #include #include using namespace std;#include #include #include原创 2015-08-31 13:51:57 · 524 阅读 · 0 评论 -
【主席树】 ZOJ 2112 Dynamic Rankings 区间第k小值
点击打开链接题解:Empress#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include using namespace std;#include #include #in原创 2015-07-29 16:18:44 · 535 阅读 · 0 评论 -
KMP与扩展KMP
KMPnext数组 表示: next[i] -> T[1…i-1] 前缀 与 T[1…i-1] 后缀相同的最大长度扩展KMPnext数组 表示: next[i]-> T[i….m] 与 T的最大公共前缀长度 extend[i] -> S[i….m] 与 T的最大公共前缀长度next是T与T自身得到的特殊的extend参考:ppt原创 2015-07-09 23:10:08 · 608 阅读 · 0 评论 -
快速幂
实际上是将幂次看为二进制下,嘻嘻嘻struct mat{ LL s[4][4];};void operator*=( mat &a,const mat &b) { static mat c; int i,j,k; memset(c.s,0,sizeof(c)); f原创 2015-02-07 21:56:11 · 576 阅读 · 0 评论 -
最小生成树 最小树形图
/****************************Kruskal算法*****************************/int father[maxn],n,m;int find(int x){ if(father[x]!=x) father[x]=find(father[x]); return father[x];}void merge(int a,int原创 2014-07-05 15:02:21 · 1086 阅读 · 0 评论 -
【计算几何】 POJ 1127 Jack Straws 判断线段是否相交
给出n个线段相交有传递g原创 2014-10-13 21:36:31 · 693 阅读 · 0 评论 -
网络流模板大全
学长的代码。。。struct ISAP { int head[VM], size, n; int dep[VM], gap[VM]; //gap[x]=y:说明残留网络中dep[i]=x的个数为y struct Edge { int u, v, w, next; Edge() { } Edge(int U, int V, in原创 2014-05-10 22:46:47 · 1768 阅读 · 0 评论 -
【几何】HDU 3124 Moonmist 最近圆对
算给你的n个圆中最近的距离(无圆相交)原创 2014-08-16 22:32:58 · 1000 阅读 · 2 评论 -
【几何】HDU 1007 Quoit Design 最近点对
模板#include#include#include#include#include#include#include#includeusing namespace std;#include#include#include#include#include#includestruct Q{ double x, y;} q[100001], sl[10],原创 2014-08-28 18:25:28 · 695 阅读 · 0 评论 -
字典树模板/ac自动机模板
const int maxnode=1000000007;const int sigma_size=27;struct trie{ int ch[maxnode][sigma_size]; int val[maxnode]; int sz; void init() { sz=1; memset(ch[0],0,sizeo原创 2014-09-05 16:01:36 · 750 阅读 · 0 评论 -
LCA
/*离线版*/const int maxn = 10000;int fa[maxn];int head[maxn],qhead[maxn];struct node{ int to,next,lca;};node edge[maxn],qedge[maxn];int find(int x){ if(fa[x]!=x) fa[x]=find(fa[原创 2014-07-30 22:37:30 · 768 阅读 · 0 评论 -
高斯消元法 模板
转自 kuangbin#include#include#include#include#includeusing namespace std;const int MAXN=50;int a[MAXN][MAXN];//增广矩阵int x[MAXN];//解集bool free_x[MAXN];//标记是否是不确定的变元/*void Debug(void){转载 2014-07-28 18:58:36 · 790 阅读 · 0 评论 -
强连通tarjan模版
转自九野博客:地址转载 2014-07-05 19:45:18 · 759 阅读 · 0 评论 -
最短路算法
最常用的原创 2014-05-12 22:59:23 · 920 阅读 · 0 评论 -
树状数组
功能:区间查询,单点更新原创 2014-05-05 21:27:29 · 721 阅读 · 0 评论 -
最大流Dinic模板
#include#include#include#include#includeusing namespace std;#define inf 1073741824#define N 100100 #define M 100100//N为点数 M为边数struct Edge{ int from, to, cap, nex;}edge[M*2];//双向边,注意RE 注意这原创 2014-05-10 21:32:15 · 747 阅读 · 0 评论 -
强连通分量模板
int V;//定点数 vector G[MAX_V];//图的邻接表表示 vector rG[MAX_V];//把边反向后的图 vector vs;//后序遍历顺序的顶点列表 bool used[MAX_V];//访问标记 int cmp[mAX_V];//所属强连通分量的拓扑序 void add_edge(int from,int to){ G[fro原创 2014-04-18 20:20:59 · 1025 阅读 · 2 评论 -
顺手存的数论 博弈
费马小定理:假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p)。即:假如a是整数,p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1。原创 2014-07-23 09:58:26 · 892 阅读 · 0 评论