
ACM算法模板合集
Feed_Sheep
现在不好好学习,以后怎么去异世界当勇者!
展开
-
网络流Dinic算法模板(易理解)
网络流Dinic算法模板#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f; const int maxn=2e5+10;int head[maxn],cnt;struct Edge{ int to,next,flow/*流量*/,cap/*最大流量*/;}edge[maxn];void add_Edge(int u,int v,int cap){ //建图(包括反向路径) edge[cnt原创 2020-08-15 14:11:22 · 185 阅读 · 0 评论 -
dijkstra模板(易理解)
dijkstra模板(优先队列+链式前向星)#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f; const int maxn=2e3+10;int head[maxn],cnt;struct Edge{ int to,next,w;}edge[maxn];void add_Edge(int u,int v,int w){ edge[cnt].to=v; edge[cnt].w=w; ed原创 2020-08-15 13:06:04 · 248 阅读 · 0 评论 -
树状数组模板(易理解)
树状数组模板一维树状数组模板(以求和为例)#include<bits/stdc++.h>using namespace std;const int maxn=2e5+10;int tree[maxn],n;#define lowbit(x) ((x)&-(x))void add(int x,int d){ //更新树状数组 while(x<=n){ tree[x]+=d; x+=lowbit(x); }}int sum(int x){ //求和区间原创 2020-08-15 12:44:13 · 145 阅读 · 0 评论 -
线段树模板(易理解)
线段树模板以求区间和为例(包括区间查询,区间修改,建树)#include<bits/stdc++.h>using namespace std;const int maxn=2e5+10;int a[maxn];int tree[maxn<<2],lazy[maxn<<2]; //四倍空间 void pushUp(int rt){ //向上传递节点值 tree[rt]=tree[rt<<1]+tree[rt<<1|1];}原创 2020-08-15 12:19:46 · 111 阅读 · 0 评论 -
并查集模板(易理解)
并查集模板#include<bits/stdc++.h>using namespace std;const int maxn=2e5+10;int s[maxn],n;void init(){ //初始化父亲数组 for(int i=1;i<=n;++i) s[i]=i;}int find_set(int x){ //查找父亲 return x==s[x]?x:s[x]=find_set(s[x]);}void union_set(int x,in原创 2020-08-15 11:33:15 · 132 阅读 · 0 评论