03 2021 档案
摘要:深度优先搜索: 深度优先搜索其实就是暴力枚举的优化版本,深度优先搜索从一种情况一直走下去,直到错误了或者是已经是答案时就不再枚举(返回上一层寻找还有没有其他的解,直到所以可能可行的情况都试过为止)。 水 //模板: void dfs(int x){ if (边界条件){记录答案/最优解;return
阅读全文
摘要:手写小根堆:堆一般就是完全二叉树,满足父节点小于等于子节点(大根堆相反) 数组存储堆: 1.父亲节点为 x ,则左右儿子节点分别为 2x , 2x + 1 2.插入一个数: head[++size] = x ; up(size); 3.求集合中最小值: head[1]; 4.删除最小值: head[
阅读全文
摘要:例题 例题 例题 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中 现在我们假定 fa[i] 表示第 i 个人的老大是谁 现在我们有甲,乙,丙三个人(分别用 a, b, c
阅读全文
摘要:栈: 队列 单链表 双链表 1.栈 #include <bits/stdc++.h> using namespace std; const innt N = 1e6 + 10; //栈 stk -->数组模拟栈 tt--> 栈顶 int stk[N], tt ; //进栈 void push(int
阅读全文