![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划和贪心算法
不想WA
记录我的学习笔记呀
展开
-
Dijkstra法解单源最短路径问题(附手写堆代码)
Dijkstra法解单源最短路径问题(附手写堆代码) 原题来自洛谷【模板】单源最短路径(标准版) 题目描述 给定一个 nnn 个点,mmm 条有向边的带非负权图,请你计算从 sss 出发,到每个点的距离。 数据保证你能从 sss 出发到任意点。 输入格式 第一行为三个正整数 n,m,sn,m,sn,m,s 。 第二行起 mmm 行,每行三个非负整数 ui,vi,wi, 表示从 ui到 vi 有一条权值为 wi 的有向边。 输出格式 输出一行 nnn 个空格分隔的非负整数,表示 sss 到每个点的最短距离。原创 2020-11-30 19:09:09 · 474 阅读 · 0 评论 -
动态规划解矩阵链乘法
题目描述 用加括号的方式给出最优的矩阵相乘方案 输入 第一行一个整数 n,表示矩阵链的长度(1<=n<=300) 接下来一行n+1个数表示这些矩阵的行数和列数 n+1个数中,每相邻的两个数表示一个矩阵的大小 输出 对于每组数据,输出两行,第一行为计算次数,第二行为计算方案,用加括号的方式给出最优的矩阵相乘方案 如果不幸最优方案不唯一,选择优先计算左边的矩阵 输入样例 3 10 20 5 4 输出样例 1200 ((A1A2)A3) 代码实现 # include <bits/stdc++原创 2020-10-28 14:43:18 · 252 阅读 · 0 评论 -
动态规划解钢条切割问题
题目描述 给一条钢管,切割成不同长度的钢管(也可以不切割),不同的钢管长度对应不同的价值,求这根钢管获得的最大价值。 输入 第一行包含一个正整数L,为钢管的长度。 第二行包含L个正整数a1…aL,为长度从1到L的钢管对应的价值。 输出 输出一行,为钢管能获得的最大价值。 输入样例 5 1 10 14 8 16 输出样例 24 思考后直接想到采用自底向上的动态规划法,即从2到n(n为钢管长度)存入每一个长度的钢管的最优价值,并逐步往上(利用之前已存的数据) 下面给出完整代码 # include <bi原创 2020-10-28 10:28:33 · 504 阅读 · 0 评论