摘要: \(Tarjan\ O(m + n)\) \(Tarjan为离线算法\) \(在线做法:边读边做\) \(离线做法:先读完,再全部处理,最后全部输出\) \(Tarjan本质上是对向上标记法的优化,首先任取一个点当成根节点向下做dfs,并将所有节点分为三部分\) \(已经遍历并完成了回溯的点标记为2 阅读全文
posted @ 2021-02-18 21:45 phr2000 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 最近公共祖先 \((1)向上标记法\ O(n)\) \((2)倍增:fa[i,j]表示从i开始,向上走2^j步所能走到的节点,0 \le j\le log_2n,depth[i]表示深度\) \(步骤\) \(先将两个点跳到同一层\) \(让两个点同时往上跳,一直跳到它们的最近公共祖先的下一层\) 阅读全文
posted @ 2021-02-18 14:12 phr2000 阅读(67) 评论(0) 推荐(0) 编辑
摘要: \((1)求不等式的可行解\\ 源点需要满足的条件: \color{Red}{从源点出发,一定可以走到所有的边.}\) 步骤 \(先将每个不等式x_i\le x_j + c_k,转化为一条从x_j走到x_i,长度为c的一条路径.\) \(找一个虚拟源点,使得该源点一定可以遍历所有边.\) \(从源点 阅读全文
posted @ 2021-02-18 00:53 phr2000 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 雇佣收银员 分析 \(本题令s_i为0\sim i点需要的人数和\) \(\color{Red}{s_i作为图中的点}\) \(为了方便使用前缀和,r_i统一往后错一位,于是r_i表示i-1\sim i中需要的人数\) \(因为24小时是一个环的形式,这里的前缀需要注意:\) \(0\sim7小时间 阅读全文
posted @ 2021-02-18 00:51 phr2000 阅读(37) 评论(0) 推荐(0) 编辑