![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM模板
文章平均质量分 61
zc850463390zc
这个作者很懒,什么都没留下…
展开
-
CDOJ1208 作为求双连通分量的模板
// Note:Your choice is C++ IDE #include #include #include using namespace std; #define min(a,b) ((a)>(b)?(b):(a)) typedef struct sldfj { int u; int v; int next; }Edge; const int mmax=10050; Edg原创 2012-05-28 16:14:15 · 521 阅读 · 0 评论 -
POJ 3460 IDA*
#include #include #include #include using namespace std; int ans_flag = 0,n,case_num; int book_shell[20]; int H(int book[]) { int sum = 0; for(int原创 2014-05-02 23:34:09 · 544 阅读 · 0 评论 -
POJ 1077 八数码-第一道IDA*
#include #include #include #include using namespace std; #define DEBUG 0 #define my_abs(x) ((x)>0?(x):-(x)) int dx[4] = {1, 0, 0, -1}; // d r l u int dy[4] = {0, 1, -1, 0}; char action[] ={'原创 2014-05-01 14:13:37 · 591 阅读 · 0 评论 -
线段树+扫描线求矩阵面积并
1:段树+扫描线 矩形面积并: struct seg { int a,b; int len; int cov; //被覆盖的次数 }; seg tree[maxn * 4]; void maketree(int a,int b,int k) { tree[k].a = a;转载 2012-10-28 09:57:49 · 963 阅读 · 0 评论 -
匈牙利模板
bool find(int u) { flag[u]=1; for(int i=head[u];i!=-1;i=edge[i].next) { int v=edge[i].v; if(!flag[v]) { flag[v]=1; if(match[v]==0||find(match[v])) { match[v]=u; return true;原创 2012-05-26 00:59:46 · 337 阅读 · 0 评论 -
堆模板
大根堆 typedef struct { int heap[205]; int size; }Heap; Heap s; void Insert(int x) { int i; for(i=++s.size;s.heap[i/2]<x;i/=2) s.heap[i]=s.heap[i/2]; s.heap[i]=x; } int DeleteMax() { int i,ch原创 2012-05-26 00:09:46 · 419 阅读 · 0 评论 -
POJ1986,作为LCA模板
// Note:Your choice is C++ IDE #include #include #include #include using namespace std; const int mmax=100050; typedef struct sdlfj { int u,v,next,w; }Edge; typedef struct gf { int u,v,num; }Qu原创 2012-05-29 00:04:44 · 573 阅读 · 0 评论 -
强连通分量缩点的模板
#include #include #include #include using namespace std; #define inti(a) memset(a,0,sizeof(a)) #define min(a,b) ((a)>(b)?(b):(a)) #define max(a,b) ((a)>(b)?(a):(b)) const int Max=1605; const i原创 2012-05-27 00:00:03 · 725 阅读 · 0 评论 -
找割点,桥以及求双连通分支的模板
void dfs(int u,int fa) { int i,cnt=0; bool tag=true; flag[u]=1; dfsnum[u]=low[u]=++Time; for(i=head[u];i!=-1;i=edge[i].next) { int v=edge[i].v; if(v==fa||dfsnum[v]>=dfsnum[u]) { tag原创 2012-05-27 20:07:07 · 4870 阅读 · 0 评论 -
POJ 3732 IDA*
#include #include #include #include #include #include using namespace std; #define DEBUG 0 #define my_abs(x) ((x)>0?(x):-(x)) int dx[4] = {1, 0, 0, -1}; // d r l u int dy[4] = {0, 1, -1, 0}原创 2014-05-01 17:01:36 · 620 阅读 · 0 评论