文章分类 - 算法蒟蒻
摘要:搜索剪枝 用于DFS 常见剪枝方法 1.优化搜索顺序 2.排除等效冗余 3.可行性剪枝:上下界剪枝 4.最优性剪枝:当前已经超过了最优解 5.记忆化搜索:重复遍历一个状态时直接检索并返回 【例题】 木棒 https://www.acwing.com/problem/content/descripti
阅读全文
摘要:【二叉树】 核心在于递归 ※注意左右子树存在时才能继续递归! 前序遍历 根节点->左子树->右子树 void pre_order(int x){ cout<<x; if(tree[x].left!=0){ pre_order(tree[x].left); } if(tree[x].right!=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
阅读全文
摘要:【Trie树/字典树/前缀树】 模版代码 【基础封装】 //注意使用时不要把空间开到栈里:开到全局变量 否则会RE //若多组测试用例:记得trie.Clear() struct Trie{ int ch[N][70],cnt[N],idx=0; map<char,int> mp; Trie(){
阅读全文

浙公网安备 33010602011771号