拓扑排序

vector<int> G[maxv]; //邻接表 int n,inDegree[maxv];//顶点数,入度 bool toplogicalSort() { int num=0; //记录顶点数 queue<i...

2018-05-24 18:56:42

阅读数:35

评论数:0

最小生成树

#define maxn ??? int father[maxn]; void init() { for(int i=1;i<=n;i++) father[i]=i; } int find(int x) { return x==pre[x]?x:(x=find(pre...

2018-05-24 18:55:45

阅读数:28

评论数:0

gcd和扩展gcd

//求解ax+my=1 int exGCD(int a,int b,int &x,int &y) { if(b==0) { x=1; y=0; return a; } int g=exGCD(b,a%b,x,y); int t...

2018-05-24 18:54:55

阅读数:30

评论数:0

树状数组 背包 模板

//树状数组 #define lowbit(x) ((x)&(-x)) #define maxn ??? int an[maxn]; int getsum(int x) { int sum=0; for(int i=x;i>0;i-=l...

2018-03-30 22:14:12

阅读数:26

评论数:0

树的直径

树的直径即树上最大长度,可以用两次dfs或者bfs求解证明如下:设树上有s,t,u,v四点,路径s-t是最长路径,从u点出发1.u点在s-t路径上,第一次就会找到距u最远的s或t点,第二次就会找到s-t路径;若第一次找到距u点最远的点是v,那么dis[u][v]>max(di...

2018-03-08 21:24:04

阅读数:71

评论数:0

矩阵快速幂

#include<iostream> #include<cstring> using namespace std; typedef struct Matrix { int matrix[35][35]; M...

2018-03-06 18:56:49

阅读数:39

评论数:0

KMP

int next[...];//大小为pattern串的长度 //常规写法 void getNext(char s[],int len) { int j=-1; next[0]=-1; for(int i=1;i<len,i++) { while(j!=-1&...

2018-03-03 21:35:10

阅读数:32

评论数:0

输出树形结构的二叉树

输入:ABC##DE#G##F### 输入所表示的二叉树               A               /              B             /   \           C    D                 /  \          ...

2017-12-17 21:57:42

阅读数:152

评论数:0

树状数组(模板)

#define maxn #define lowbit(x) ((x)&(-x)) int c[maxn]; //i号位之前(含i号位)lowbit(i)个整数之和 //点更新 //update函数将第x个整数加上v void update(int x,int v) { for...

2017-08-08 19:31:28

阅读数:105

评论数:0

线段树模板

//在我的理解里线段树并不是数据结构上所谓的树,而是通过数组模拟,通过 //函数进行下标转换(查询) #include #define maxn using namespace std; struct list { int left; int right; int _max; in...

2017-08-08 09:51:27

阅读数:133

评论数:0

树的建立和遍历

这段代码实现了二叉树的建立和前序、中序、后序、层序四种输出顺序 #include #include #include #include using namespace std; struct tree { int data; struct tree *l,*r; }; void creat...

2017-07-26 10:33:52

阅读数:143

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭