随笔分类 -  算法-dp

动态规划的算法题目
摘要:c++ 最短Hamilton路径 /* 题目描述: 背景介绍: 给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。 Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个点恰好一次。 输入格式: 第一行输入整数 n。 接 阅读全文
posted @ 2022-07-11 20:33 lucky_light 阅读(54) 评论(0) 推荐(0) 编辑
摘要:C++ 蒙德里安的梦想 /* 问题描述: 求把 N×M 的棋盘分割成若干个 1×2 的长方形,有多少种方案。 例如当 N=2,M=4 时,共有 5 种方案。当 N=2,M=3 时,共有 3 种方案。 数据范围: 1 ≤ N,M ≤ 11 解题思路: 本题是一个状态压缩的动态规划问题,相邻状态之间存在 阅读全文
posted @ 2022-07-10 16:38 lucky_light 阅读(54) 评论(0) 推荐(0) 编辑
摘要:C++ 计数问题 /* 问题描述: 给定两个整数 a 和 b,求 a 和 b 之间的所有数字中 0∼9 的出现次数。 例如,a=1024,b=1032,则 a 和 b 之间共有 9 个数如下: 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出现 阅读全文
posted @ 2022-07-09 15:39 lucky_light 阅读(150) 评论(0) 推荐(0) 编辑
摘要:C++ 滑雪 /* 问题描述: 给定一个 R 行 C 列的矩阵,表示一个矩形网格滑雪场。 矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。 一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。 当然,一个人能够滑动到某相邻区域的前提是该区域的高 阅读全文
posted @ 2022-07-09 14:29 lucky_light 阅读(81) 评论(0) 推荐(0) 编辑
摘要:c++ 没有上司的舞会 /* * 没有上司的舞会 * 题目描述: * Ural 大学有 N 名职员,编号为 1∼N。 * 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。 * 每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。 * 现在要召开一场周年庆宴会,不过,没有职员愿 阅读全文
posted @ 2022-07-08 23:03 lucky_light 阅读(43) 评论(0) 推荐(0) 编辑
摘要:C++ 整数划分 /* * 整数划分 * * 问题描述: * 题目: * 一个正整数 n 可以表示成若干个正整数之和,形如:n=n1+n2+…+nk,其中, n1 ≥ n2 ≥ … ≥ nk,k ≥ 1。 * 我们将这样的一种表示称为正整数 n 的一种划分。(其实上面这个定义主要是说明其有序性) * 阅读全文
posted @ 2022-07-07 19:54 lucky_light 阅读(180) 评论(0) 推荐(0) 编辑
摘要:c++ 石子合并 /* 问题描述: 设有 N 堆石子排成一排,其编号为 1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同 阅读全文
posted @ 2022-07-06 19:08 lucky_light 阅读(52) 评论(0) 推荐(0) 编辑
摘要:c++ 编辑距离 /* 问题描述: 给定 n 个长度不超过 10 的字符串以及 m 次询问,每次询问给出一个字符串和一个操作次数上限。 对于每次询问,请你求出给定的 n 个字符串中有多少个字符串可以在上限操作次数内经过操作变成询问给出的字符串。 每个对字符串进行的单个字符的插入、删除或替换算作一次操 阅读全文
posted @ 2022-07-05 19:39 lucky_light 阅读(52) 评论(0) 推荐(0) 编辑
摘要:C++ 最短编辑距离 /* 给定两个字符串 A 和 B,现在要将 A 经过若干操作变为 B,可进行的操作有: 删除–将字符串 A 中的某个字符删除。 插入–在字符串 A 的某个位置插入某个字符。 替换–将字符串 A 中的某个字符替换为另一个字符。 现在请你求出,将 A 变为 B 至少需要进行多少次操 阅读全文
posted @ 2022-07-05 19:24 lucky_light 阅读(86) 评论(0) 推荐(0) 编辑
摘要:c++ 最长公共子序列 /* 最长公共子序列 问题描述: 给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M。 第二行包含一个长度为 N 的字符串,表示字符串 A。 第三行包含一个长度为 M 阅读全文
posted @ 2022-07-04 19:27 lucky_light 阅读(66) 评论(0) 推荐(0) 编辑
摘要:c++ 最长上升子序列 II /* * 最长上升子序列 * * 问题描述: * 给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 * 1 ≤ N ≤ 1000, * −10^9 ≤ 数列中的数 ≤ 10^9 * * 1 ≤ N ≤ 100000 该题目还可以进一步扩大范围 * 阅读全文
posted @ 2022-07-03 15:57 lucky_light 阅读(78) 评论(0) 推荐(0) 编辑
摘要:C++ 数字三角形 /* * * 题目描述: * 给定一个如下图所示的数字三角形,从顶部出发, * 在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点; * 一直走到底层,要求找出一条路径,使路径上的数字的和最大。 * * 7 * 3 8 * 8 1 0 * 2 7 4 4 * 4 5 2 阅读全文
posted @ 2022-07-03 12:05 lucky_light 阅读(194) 评论(0) 推荐(0) 编辑
摘要:c++ 多重背包问题 /* * 多重背包问题 * 问题描述: * 有 N 种物品和一个容量是 V 的背包。 * 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。(这样的话和 01 背包和完全背包都不一样) * 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 阅读全文
posted @ 2022-07-02 15:01 lucky_light 阅读(243) 评论(0) 推荐(0) 编辑
摘要:C++ 完全背包问题 /* * 完全背包问题 * 问题描述: * 有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。 * 第 i 种物品的体积是 vi,价值是 wi。 * 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 * 输出最大价值。 * * 数据范围: 阅读全文
posted @ 2022-07-02 11:48 lucky_light 阅读(351) 评论(0) 推荐(0) 编辑
摘要:c++ 01 背包问题 /* * 0, 1 背包问题 * * 问题描述: * 有 n 件物品和一个容量是 m 的背包。每件物品只能使用一次。 * 第 i 件物品的体积是 vi,价值是 wi。 * 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 * 输出最大价值。 * * 阅读全文
posted @ 2022-07-01 19:18 lucky_light 阅读(201) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示