自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 蓝桥杯软件赛大纲(编程赛C++)

(1)欧拉回路[5-7] (2)最小生成树[5-7] (3)单源最短路及差分约束系统[5-7] (4)拓扑序列[5-7] (5)二分图匹配[7] (6)图的连通性问题(割点、桥、强连通 分量)[7] (7)DFS 序[5-7] (8)最近共同祖先[5-7](1)ST 表[5-6] (2)堆[5-6] (3)树状数组[5-6] (4)线段树[6-7] (5)Trie 树[5-7] (6)并查集[5-6] (7)平衡树(利用系统自带的标准库实现简 单平衡树)[5-7]

2024-03-03 17:17:34 1175 1

原创 搜索与图论--有向图的拓扑序列

1、(1)有几个箭头指向的点称为有几个入度(2)一个点有几个箭头指出则有几个出度2、出度和入度都为0的点是孤立的点3、有自环的图没有拓扑序列,因为没有入度为0的点4、没有自环的有向图有拓扑序列。#include<iostream>using namespace std;const int N=100010;int n,m;int h[N],e[N],ne[N],idx;//链表int q[N],d[N];//队列和入度void add(int a,in.

2022-02-15 21:41:01 383

翻译 搜索与图论--树与图的遍历

一、树与图的深度优先遍历#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=100010,M=N*2;int n;int ans=N;int h[N],e[N],ne[N],idx;bool st[N];void add(int a,int b){ e[idx]=b;ne[idx]=h[a];h[a]=idx++;/.

2022-02-13 21:28:51 174

转载 DFS&BFS

一、深度优先搜索(DFS)按分支搜索,搜到最后再回溯(深度优先的原则)。时间复杂度:O(n)#include<iostream>using namespace std;const int N=10;int n;int path[N];bool st[N];void dfs(int u){ if(u==n) { for(int i=0;i<n;i++) printf("%d ",path[i]); puts(""); return; } f

2022-02-11 19:37:53 153

原创 数据结构--哈希表

哈希表的主要作用:把一个庞大的空间或值域映射到一个比较小的空间(10^5~10^6)映射做法:x%(10^5~10^6);因为值x的范围(10^9)比较大,映射的范围(10^5~10^6)比较小,所以可能会产生冲突(把若干不同的数映射成同一个数)一、存储结构题目:例题--哈希表(模拟散列表)_宋菜菜的博客-优快云博客1、开放寻址法开一个比题目数据范围大2~3倍的数组(防止冲突),每一个值x插入或查找时,通过find函数返回值x需要插入或查找的下标。int find(int

2022-02-09 21:57:53 186

转载 例题--字符串哈希

/*输入样例8 3aabbaabb1 3 5 71 3 6 81 2 1 2*/#include<iostream>using namespace std;typedef unsigned long long ULL;const int N=100010;ULL h[N],p[N],P=131;char str[N];ULL get(int l,int r){ return h[r]-h[l-1]*p[r-l+1];}int main(){ i...

2022-02-09 21:56:35 225

转载 例题--哈希表(模拟散列表)

/*输入样例5I 1I 2I 3Q 2Q 5*/#include<iostream>//模拟散列表 (开放寻址法) #include<cstring>using namespace std;const int N=200003,null=1e9+1;//开放寻址法需要数组范围需要开到给出数据范围的2~3倍 int h[N],e[N],ne[N],idx;int find(int x){ int k=(x%N+N)%N; ...

2022-02-09 20:03:49 200

原创 数据结构--堆

把一组数放到堆(heap[])里,把堆抽象成一个完全二叉树(令堆顶元素的下标为1),若某元素的下标为x,则左边的子节点的下标为2*x,右边的子节点的下标为2*x+1。一、up函数:void up(int u)//如果该元素的父节点对应的元素heap[u/2]>该元素heap[u],则将heap[u]向上调整;{ while(u/2>=1&&heap[u/2]>heap[u]) { swap(heap[u/2],he..

2022-01-28 17:31:01 1464

原创 数据结构--并查集

一、并查集1)集合合并2)查询元素所在的集合编号3)判断两个元素是否在同一个集合里面二、把集合抽象成一个树状图,用树根作为该集合的集合编号。设p[x]为x的集合编号,p[x]即为树根,集合编号p[x]可以当作x的父亲。1)如何判断树根:如果p[x]=x,则p[x]为x的树根。2)如何求x的集合编号:while(p[x]!=x) p[x]=p[p[x]];如果p[x]不是x的树根,就让p[x]等于p[x]的父节点。3)如何合并两个集合:设p[...

2022-01-26 20:02:23 387

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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