模板
进修中的涵涵涵
acm退役选手
acm icpc 金
dota爱好者
展开
-
Trie(字典树模板)
(查找是否纯在前缀) 结构体 Trie 成员函数: void init() 初始化 void insert(char*str) 插入字符串str int query(int s) 从s开始查找是否纯在一个字符串是另一个字符串的前缀//N 字符集大小 如果是数字为10,如果是字母为26,大小写为52 //AIM 字符集最小字符 str原创 2017-03-12 18:20:09 · 384 阅读 · 0 评论 -
lca 离线模板
struct node { int v,w; node(){} node(int vv,int ww) { v=vv;w=ww; } }; struct edge { int u,v,lca; edge(){} edge(int uu,int vv,int ll) { u=uu,v=vv,lca=ll; } }; vectorG; vectorv[50000]; vec原创 2017-10-08 22:33:54 · 361 阅读 · 0 评论 -
强联通 tarjan (模板)
struct tarjan { const int maxn=50050; vectorv[maxn]; stackS; int dfn[maxn],low[maxn],viss[maxn]; int index,cnt; void init(int n) { for(int i=0;i<=n;i++) v[i].clear(); memset(dfn,0,sizeof(原创 2017-10-08 22:31:58 · 350 阅读 · 0 评论 -
树状数组 (模板)
struct szsz { int c[maxn]; int lowbit(int x) { return x&(-x); } int getadd(int x) { int ans=0; while(x>0) { ans+=c[x]; x-=lowbit(x); } return ans; } void update(int x,int n,原创 2017-10-08 22:29:33 · 256 阅读 · 0 评论 -
字符串哈希(Hash模板)
struct Hash { int hash[50500]; int head[50500]; int next[50500]; int mod=10007; char mp[50500][20]; void init() { memset(hash,0,sizeof(hash)); memset(head,-1,sizeof(head)); memset(next,-1原创 2017-06-20 21:20:47 · 611 阅读 · 0 评论 -
最小费用最大流(模板)
#define MAXN 1005 #define INF 2000000000 int source,sink; //源点 汇点 struct tree { int from,to,flow,worth,next; //结点,流量,费用,链表 tree(){} tree(int fr,int ro,int fl,int wo,int ne) { from=fr,to=ro,flo原创 2017-06-20 21:18:30 · 383 阅读 · 0 评论 -
带权并查集(模板)
int father[500000]; int rank1[500000]; int value[500000]; void init(int n) { for(int i=0;i<=n;i++) { father[i]=i; rank1[i]=0; value[i]=0; } } int find(int a) { if(a==father[a]) return a;原创 2017-06-20 21:15:57 · 413 阅读 · 0 评论 -
字符串匹配 KMP(模板)
电脑准备重装一波,把模板都发一下 struct KMP { int a[1000100]; int b[11111]; int n,m; int nextval[11111]; void init() { memset(nextval,0,sizeof(nextval)); } void get_next() //next跳表 {原创 2017-06-20 21:13:02 · 351 阅读 · 0 评论 -
倍增法求lca 模板
struct tree { int from,to,w; tree(int ff,int tt,int ww) { from=ff;to=tt;w=ww; } tree(){} }; vectorG; vectorV[M*2]; int mxdeep; int father[N][30]; //记录祖先结点编号 int deep[N]; //记录结点深度 int原创 2017-06-06 18:41:23 · 402 阅读 · 0 评论 -
链表、栈、队列(链式存储结构的添加,删除,查找,翻转 操作)
定义: 1.栈是一种先进后出的结构 2.队列是先进先出,如果是用数组实现的话要判断队列是否满,链表的话不存在满的情况 指针用的不多,如果有什么问题或者优化希望dalao们可以指点一下。 剩下的都写下代码注释里啦~ 注释比较详细,留着下次写的时候可以复习QAQ /* 下面的栈、队列、链表都是用10个随机生成的数进行的操作 以前写都是用数组写的或者懒一点直接stl,这次用指针写原创 2017-05-08 23:12:24 · 1288 阅读 · 0 评论 -
HDU - 2255 奔小康赚大钱 (KM图) (KM图模板)
奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10674 Accepted Submission(s): 4723 Problem Description 传说在遥远的地方有一个非常富裕的村落原创 2017-09-22 00:14:10 · 422 阅读 · 0 评论