摘要:
差分约束 1. 说明 下面的 \(x_i\) 就表示 \(dist[i]\) 怎么判断一题是不是差分约问题:看问题能不能通过一堆不等式求解 参考 WIKI AcWing 2. 应用 差分约束可以转换成最短路问题 如果不等式的形式应该严格满足:\(xi <= xj + C\),其中 \(x_i\) 和 阅读全文
摘要:
介绍 求负环方法 求负环的常用方法,基于 \(SPFA\),一般都用方法 \(2\): 方法 \(1\):统计每个点入队的次数,如果某个点入队 \(n\) 次,则说明存在负环 方法 \(2\):统计当前每个点的最短路中所包含的边数,如果某点的最短路所包含的边数大于等于 \(n\),则也说明存在环 原 阅读全文
摘要:
最短路 题目 903. 昂贵的聘礼 思路 如何建图: 对于每一个物品,建立一条由虚拟源点指向该物品的边 对于可以替换的物品,建立一条替换物品到目标物品的边 最终就是求虚拟源点到终点 \(1\) 的边 代码 #include <iostream> #include <cstring> #include 阅读全文
摘要:
放在前面 1.DFS总结 2.在这一部分中,经常在dfs内部用到这样一种形式 bool dfs(...) { if(dfs(...)) return true;// 链式反应 ... return false; } 我们称上面在 \(dfs\) 内部直接返回 \(true\) 的这种操作为链式反应, 阅读全文
摘要:
Floyd算法 简介 1.概念 \(Floyd\) 算法 是解决任意两点间的最短路径的一种算法 是一种插点算法 可以正确处理有向图或带负权非回路的最短路径算法 同时也被用于计算有向图的传递闭包 \(Floyd\) 时间复杂度为 \((N^3)\) 空间复杂度为 \(O(N^2)\) 2.算法证明 可 阅读全文
摘要:
引入 题目描述 经典应用:八皇后问题 dg和udg数组的解释 对角线 \(dg[u+i]dg[u+i]\),反对角线$udg[n−u+i]udg[n−u+i]$中的下标 $u+i$和 \(n−u+i\) 表示的是截距 下面分析中的 \((x,y)\) 相当于上面的 \((u,i)\) 反对角线 \( 阅读全文
摘要:
线段树当中的几个重要操作 1.PushUp 上推操作:由子节点算父节点的信息 \(push up\) 操作的目的是为了维护父子节点之间的逻辑关系。当我们递归建树时,对于每一个节点我们都需要遍历一遍,并且电脑中的递归实际意义是先向底层递归,然后从底层向上回溯,所以开始递归之后必然是先去整合子节点的信息 阅读全文
摘要:
树状数组 简介 1.应用 1.单点修改区间查询 2.区间修改单点查询(差分) 3.区间修改区间查询(差分+公式) 总而言之,就是动态维护前缀和。 2.树状结构图 3.lowbit函数 我们知道,任何一个正整数都可以被表示成一个二进制数。如: $$(2)_{10}=(10)2$$ $$(4){10}= 阅读全文