加载中...

上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 54 下一页
摘要: Tarjan 算法原理 如下图所示。左边是最初的有向图,右边是经过 tarjan 算法后的图,其中实线有向边为树边;虚线有向边为回边;左图存在而右图不存在的边为弃边;每个结点旁边的数字为 dfn 序号。 树边、回边和弃边更精确的定义: 树边:dfs 过程中,从 \(u\) 到达 \(v\),\(v\ 阅读全文
posted @ 2026-02-25 17:42 小橘奏 阅读(24) 评论(0) 推荐(0)
摘要: 大致意思就是:一共 \(n\) 件物品,每件物品有 \(0\) 或 \(1\) 件依赖的物品,只有这件物品依赖的物品被选后才能选这件物品。每件物品都有体积和价值,求对于体积为 \(V\) 的背包,可获得的最大总价值。 先假设不存在互相依赖的关系。由于每件物品最多只会依赖一件物品,构成的 DAG 一定 阅读全文
posted @ 2026-02-25 11:01 小橘奏 阅读(18) 评论(0) 推荐(0)
摘要: E. Rigged Bracket Sequence 一道稍稍灵活的子序列计数 dp,补了一晚上才补出来qwq。。。 Q: 给定长度为 \(n\) 的 RBS,对子序列计数,子序列需满足条件:循环右移一位后,整个括号串仍是 RBS。 一个括号串是 RBS: 末尾项 \(pre\) 等于 \(0\) 阅读全文
posted @ 2026-02-25 00:42 小橘奏 阅读(40) 评论(0) 推荐(0)
摘要: 笛卡尔树 单调栈始终维护笛卡尔树从根节点一直向右走的整条链。 一般情况下都是基于数组下标建二叉搜索树,基于元素值建堆 Treap 树 不是很重要,理解思想即可。 笛卡尔树模板 int n; int p[N]; pii stk[N]; int top = 0; int lson[N] , rson[N 阅读全文
posted @ 2026-02-23 17:41 小橘奏 阅读(28) 评论(0) 推荐(0)
摘要: 与 dfn 序的区别:在 dfs 回溯时,把回溯结点也添加到序列中。 欧拉序中每个结点首次出现的顺序就是 dfn 序 eg: O(1) 查询任意两个结点的 lca 欧拉序求 lca 利用欧拉序结合倍增表,可以在 \(O(n\log n)\) 预处理后做到 \(O(1)\) 查询任意两点 \(lca\ 阅读全文
posted @ 2026-02-21 10:59 小橘奏 阅读(29) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 54 下一页