动态规划
良 夜
这个作者很懒,什么都没留下…
展开
-
最大工时价值问题
动态规划 问题描述:输入n个时间段以及各个时间段对应的价值,求解在不冲突的情况下能得到最大的工作价值(工作价值不一定与时间的长短成正比)输入有要求的,要求第i个任务的结束时间一定要大于前面任务的结束时间(有了这个要求皆可以不用谢结构体在进行排序了) 样例: 8 1 4 5 3 5 1 0 6 8 4 7 4 3 8 6 5 9 3 6 10 2 8 11 4`` 输出:3 先分析分析问题,别看到这...原创 2020-02-08 20:33:39 · 913 阅读 · 0 评论 -
谈背包问题
背包问题主要分为两种,01背包和完全背包 01背包:就是一个背包里不能重复的放入一件物品 完全背包:放入背包的物品仅受当前背包的容量影响(可以重复放入物品) 01背包的一维函数内层循环是倒着的,不然会重复 完全背包的一维函数内层循环正序,正是利用了其重复来解决问题。 下面由两道例题来讲述: 1.采药问题: 题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望...原创 2020-02-05 23:12:55 · 184 阅读 · 0 评论 -
(动态规划)指定数字某一数列中累加能否得到的问题
指定数字某一数列中累加能否得到的问题 样例:6 9 3 34 4 12 5 2 6表示数列的长度,9为指定数字 输出:1 利用动态规划,对数列里的每一个数字进行考虑,即选或不选 fib(int n,int s)表示轮到第n个数字时,指定数字的大小为s 在递归中要处理好出口问题即可。 在这里插入代码片#include<iostream> using namespace std; int ...原创 2020-01-30 21:49:24 · 242 阅读 · 1 评论 -
动态规划
不相邻数字累加最大问题 代码模型:fib(i)=max{选+另一步,不选(直接另一步)}; 对于重叠子问题,使用记忆化搜索 #include<iostream> #include<math.h> using namespace std; int q[100]; int mem[100]={0}; bool flag[100]={false}; int fib(int n) ...原创 2020-01-30 19:28:14 · 179 阅读 · 0 评论