摘要:
二分图(1) 1.例题:染色法判断二分图 题目描述 给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。 请你判断这个图是否是二分图。 输入格式 第一行包含两个整数 和 。 接下来 m 行,每行包含两个整数 和 ,表示点 和点 之间存在一条边。 阅读全文
摘要:
Dijkstra 算法(2) 1.例题 题目描述 给定一个 个点 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。 请你求出 号点到 号点的最短距离,如果无法从 号点走到 号点,则输出 −1。 输入格式 第一行包含整数 和 。 阅读全文
摘要:
计数类DP 1.经典例题——整数划分 一个正整数 n 可以表示成若干个正整数之和,形如: ,其中 。 我们将这样的一种表示称为正整数 的一种划分。 现在给定一个正整数 ,请你求出 共有多少种不同的划分方法。 阅读全文
摘要:
区间DP 1.区间DP简介 区间型动态规划是线性动态规划的拓展,它将区间长度 作为阶段,长区间的答案与短区间有关。 在求解长区间答案前需先将短区间答案求出。 区间型动态规划的典型应用有石子合并、乘积最大等。 2.经典例题:石子合并 题目描述 在一个操场上一排地摆放着 堆石子。现要将石子有次序 阅读全文
摘要:
线性DP(中) 1.经典例题(3):最长公共子序列 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列 ,则另一序列 是X的子序列是指存在一个严格递增的下标序列 $<i_1,i_2,…,i_k> 阅读全文
摘要:
线性DP 1.线性DP简介 线性DP这类动态规划问题的状态一般是一维的f[i],第i个元素的 最优值只与前i-1个元素的最优值(正推)或第i+1个元素 之后的最优值(倒推)有关。 2.经典例题(1):数字金字塔 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最 阅读全文
摘要:
完全背包问题 1.完全背包问题介绍 有 种物品和一个容量是 的背包,每种物品都有无限件可用。 第 种物品的体积是 ,价值是 。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 2.完全背包问题例题 有 种物品和一个容量是 阅读全文
摘要:
Kruskal 算法 1.Kruskal 算法介绍 最小生成树: 给定一张边带权的无向图 ,其中 表示图中点的集合, 表示图中边的集合, , 。 由 中的全部 个顶点和 中 条边构成的无向连通子图被称为 $G 阅读全文
摘要:
Prim 算法 1.Prim 算法介绍 最小生成树: 给定一张边带权的无向图 ,其中 表示图中点的集合, 表示图中边的集合, , 。 由 中的全部 个顶点和 中 条边构成的无向连通子图被称为 的一棵生 阅读全文