动态规划
xbb052
c++大学生
展开
-
滑雪(记忆化搜索)
在给定矩阵中,最长的滑行轨迹为 25−24−23−…−3−2−125−24−23−…现在给定你一个二维矩阵表示滑雪场各区域的高度,请你找出在该滑雪场中能够完成的最长滑雪轨迹,并输出其长度(可经过最大区域数)。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。在给定矩阵中,一条可行的滑行轨迹为 24−17−2−124−17−2−1。给定一个 R 行 C 列的矩阵,表示一个矩形网格滑雪场。原创 2023-02-27 14:15:53 · 108 阅读 · 0 评论 -
285.没有上司的舞会(树形dp)
在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。每一个点分为选该点和不选该点,以根节点判断取还是不取,每次更新取得时候得最大值和不取得时候的最大值。接下来 N−1 行,每行输入一对整数 L,K,表示 K 是 L 的直接上司。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。接下来 N 行,第 i 行表示 i 号职员的快乐指数 Hi。Ural 大学有 N 名职员,编号为 1∼N。原创 2023-02-27 13:41:58 · 74 阅读 · 0 评论 -
裁剪序列(单调队列,贪心,dp,multiset,双指针)
给定一个长度为 N 的序列 A,要求把该序列分成若干段,在满足“每段中所有数的和”不超过 M 的前提下,让“每段中所有数的最大值”之和最小。第二行包含 N 个整数,表示完整的序列 A。涉及动态规划,贪心,单调队列和双指针。序列A中的数非负,且不超过10^6。第一行包含两个整数 N和 M。如果结果不存在,则输出 −1。输出一个整数,表示结果。原创 2023-02-26 19:15:11 · 95 阅读 · 0 评论 -
floyd算法 求最短路acwing854
再给定 k 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出。接下来 m 行,每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。接下来 k 行,每行包含两个整数 x,y,表示询问点 x 到点 y 的最短距离。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。共 k 行,每行输出一个整数,表示询问的结果,若询问两点间不存在路径,则输出。数据保证图中不存在负权回路。该类算法原理是动态规划。原创 2023-02-17 21:34:33 · 75 阅读 · 0 评论