文章分类 -  算法蒟蒻

上一页 1 ··· 10 11 12 13 14
摘要:【拓扑排序/图的BFS】 有向图 重边 自环 图的BFS 【思路】 queue<-1 while(queue不空){ t<-队头 拓展t所有邻边x if(x未遍历){ queue<-x d[x]=d[t]+1 } } 例题:图中点的层次 https://www.acwing.com/problem/ 阅读全文
posted @ 2024-12-13 01:14 White_ink 阅读(23) 评论(0) 推荐(0)
摘要:【图的存储】 邻接表/邻接矩阵 ※用来存有向图 无向图:一种特殊的有向图->存两次 add(a,b); add(b,a); 代码实现:链式前向星 头插法 【插入】 int idx=0; //节点序号 int h[M];//头结点:记得初始化为-1! int e[M];//存储该节点的值 int ne 阅读全文
posted @ 2024-12-12 02:24 White_ink 阅读(53) 评论(0) 推荐(0)
摘要:搜索剪枝 用于DFS 常见剪枝方法 1.优化搜索顺序 2.排除等效冗余 3.可行性剪枝:上下界剪枝 4.最优性剪枝:当前已经超过了最优解 5.记忆化搜索:重复遍历一个状态时直接检索并返回 【例题】 木棒 https://www.acwing.com/problem/content/descripti 阅读全文
posted @ 2024-12-07 14:53 White_ink 阅读(5) 评论(0) 推荐(0)
摘要:【二叉树】 核心在于递归 ※注意左右子树存在时才能继续递归! 前序遍历 根节点->左子树->右子树 void pre_order(int x){ cout<<x; if(tree[x].left!=0){ pre_order(tree[x].left); } if(tree[x].right!=0) 阅读全文
posted @ 2024-11-09 01:39 White_ink 阅读(14) 评论(0) 推荐(0)
摘要:并查集 解决连通性问题 模版代码 带启发式合并 struct DSU { vector<int> fa, p, e, f; DSU(int n) { fa.resize(n + 1); iota(fa.begin(), fa.end(), 0); p.resize(n + 1, 1); e.resi 阅读全文
posted @ 2024-10-28 00:10 White_ink 阅读(32) 评论(0) 推荐(0)
摘要:【Trie树/字典树/前缀树】 模版代码 【基础封装】 //注意使用时不要把空间开到栈里:开到全局变量 否则会RE //若多组测试用例:记得trie.Clear() struct Trie{ int ch[N][70],cnt[N],idx=0; map<char,int> mp; Trie(){ 阅读全文
posted @ 2024-10-27 16:59 White_ink 阅读(10) 评论(0) 推荐(0)

上一页 1 ··· 10 11 12 13 14