摘要: 前置芝士 DFS生成树 有向图的 DFS 生成树主要有 4 种边(不一定全部出现): 树边(tree edge):示意图中以黑色边表示,每次搜索找到一个还没有访问过的结点的时候就形成了一条树边。 反祖边(back edge):示意图中以红色边表示(即7->1),也被叫做回边,即指向祖先结点的边。 横 阅读全文
posted @ 2023-10-19 21:26 White_Sheep 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 时间复杂度 一般题目会限制时间为1s,在1s内计算机最多进行 5*10^8次运算。 由于时间复杂度N的前面还会存在常数,因此以下的最大数据规模除以10或除以2都是很保险的,不会发生超时现象。 一般1到2s,c++操作次数控制在107到108为最佳。 空间复杂度 \[128MB==3.2*10^7(i 阅读全文
posted @ 2023-10-19 18:36 White_Sheep 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 重构字符串 [problem description] 给定一个字符串 s ,检查是否能重新排布其中的字母,使得两相邻的字符不同。 返回 s 的任意可能的重新排列。若不可行,返回空字符串 "" 。 1 <= s.length <= 500 s 只包含小写字母 [solved] [贪心+木桶 阅读全文
posted @ 2023-10-19 15:24 White_Sheep 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 条件前缀和 二维前缀和 树上前缀和 点前缀和 s[i]表示从根节点到节点i的点权和。 先自顶向下计算出前缀和s[i],然后用前缀和拼凑出(x,y)的路径和。 求路径和公式: \(s[x]+s[y]-s[lca]-s[fa[lca]]\) 边前缀和 设s[i]表示从根节点到节点i的边权和。 阅读全文
posted @ 2023-10-19 07:22 White_Sheep 阅读(4) 评论(0) 推荐(0) 编辑