05 2024 档案
摘要:背包类问题是动态规划的一类问题模型,这类模型应用广泛。背包类问题通常可以转化成以下模型:有若干个物品,每个物品有自己的重量和价值。选择物品放进一个容量有限的背包里,求出在容量不超过最大限度的情况下能拿到的最大总价值。 01 背包问题 背包类问题中最简单的是 01 背包问题:有 个物品,编
阅读全文
摘要:树的直径是指树上最远的两点间的距离,又称为树的最远点对。有两种方法求树的直径,时间复杂度都为 : 做两次 DFS(或 BFS) 树形 DP 两种方法有各自的优点和缺点。 做两次 DFS(或 BFS)方法的优点是能得到完整的路径。因为它用搜索的原理,从起点 出发一步一步求
阅读全文
摘要:二分图 bool dfs(int u, int c) { if (color[u] == c) return true; else if (color[u] == 3 - c) return false; color[u] = c; for (int v : graph[u]) if (!dfs(v
阅读全文