动态规划-关于书本复制问题 算法

问题描述

关于书本复制问题 算法

假设有M本书(编号为1,2,…M),想将每本复制一份,M本书的页数可能不同(分别是P1,P2,…PM)。任务是将这M本书分给K个抄写员(K〈=M〉,每本书只能分配给一个抄写员进行复制,而每个抄写员所分配到的书必须是连续顺序的。用动态规划的思想来解,有详细的解答吗?

解决方案

http://www.cppblog.com/mythit/archive/2009/06/16/87770.html

解决方案二:

题主的问题似乎不够详细,我补充几个:
1)可以有闲置的抄写员吗?
2)当一本书被分配给某个抄写员,那么这本书必须得被复制吗?
3)是不是每一本书,能且只能被复制一次?

时间: 2024-11-18 01:44:34

动态规划-关于书本复制问题 算法的相关文章

版主您好,关于您的Opencv3书本的分水岭算法的分析,第337页的标记目标图有个不明确地方请教下

问题描述 版主您好,关于您的Opencv3书本的分水岭算法的分析,第337页的标记目标图有个不明确地方请教下 请问个问题,关于您的书Opencv3第337页的line(g__maskimage为什么不可以改成line(maskimage也就是直接把分水岭种子布在结果图上,而要多一个中间掩膜图步骤然后还要再寻找轮廓和绘制轮廓?直接花在结果图maskimage上,不就省了_从g_maskimage上findcontours()再drawcontours(0到maskimage这个过程了吗? 解决方案

1.4买书问题之贪心算法和动态规划

对于自己的白痴程度,自己已经快无法忍受了,到现在还不明白贪心算法和动态规划. 1.贪心算法 在对问题求解时,总是做出当前看来最好的选择,也就是说它不从整体最优上加以考虑,而是仅在局部考虑最优解. 虽然,它不能为所有问题提供最优解答,但是对广泛问题能产生整体最优解或近似解. 基本思路: 1.建立数序模型 2.把问题分解若干子问题,依次求解 3.把局部最优解合成原问题的一个解 2.动态规划 通过百度一下,从百度知道得到了一个很好的解答! 动态规划的基本思想就是把全局问题化为局部问题,为了全局优化必须

算法起步之动态规划

原文:算法起步之动态规划        动态规划其实是类似于分治算法,说白就是要解决这类问题需要依赖一个个的子问题解决.动态规划通常是用来求解最优化问题,设计一个动态规划的算法一般需要四步: 刻画一个最优解的结构特征. 递归定义最优解的值. 计算最优解的值采用自底向上的方法. 利用计算出的信息构造一个最优解.       但是一般我们只需要前三步即可,第4步是根据最优值来求最优解的构成.       我们先通过一个具体的例子来了解一下.       下图是某公司出售的一段长度为i英寸的共条的价格

给大家共享一个基本算法包

下载地址    http://www.cppblog.com/Files/huyi/datastruct.rar 包含内容:下面是文档包含的内容:二分查找1.c二分查找2.c二叉树.c其它 单元加单循环链表.c单链表.c图.c字符定长串.c 小写数字转为大写数字带头结点双链循环线性表.c底层编程效验算法数学问题数据结构数组文件程序求进制汉诺塔硬币情况逆阵链串.c链栈.c链队列.c问题算法顺序栈.c顺序表.c顺序队列.c ./其它:c语言窗体实例.zip傻瓜递归.c冒泡法改进.c小字库DIY-.c

[算法系列之二十九]Bellman-Ford最短路径算法

单源最短路径 给定一个图,和一个源顶点src,找到从src到其它所有所有顶点的最短路径,图中可能含有负权值的边. Dijksra的算法是一个贪婪算法,时间复杂度是O(VLogV)(使用最小堆).但是迪杰斯特拉算法在有负权值边的图中不适用,Bellman-Ford适合这样的图.在网络路由中,该算法会被用作距离向量路由算法. Bellman-Ford也比迪杰斯特拉算法更简单和同时也适用于分布式系统.但Bellman-Ford的时间复杂度是O(VE),这要比迪杰斯特拉算法慢.(V为顶点的个数,E为边的

算法:poj 3628 Bookshelf 2(dfs, 01背包)

题目大意: 有n个数字(1-100W),现在有一个数b,1<=b<=s(s为n个数字之和).要从n 个数字中选择一些数字组合,有一写组合的数字之和x会大于等于b, 求所有x中x-b最小的是多少? 思路: 刚开始看到这题,发现数字这么大,以为内存不够不能用背包.而n最大才20,所以直接用 dfs+减枝0MS过了... 然后用背包,开了2000W+的数组,memset初始化,果断地MLE了...然后 看了下discuss,发现用memset会增加很多额外的内存. 于是改用for循环初始化,内存就够

算法:poj 3211 Washing Clothes(01背包)

题目大意: Dearboy和他的女朋友一起洗m件衣服,共有n总颜色(每件衣服只有一种颜色). 为 了放置不同颜色互染,每次只能洗一种颜色的衣服,在这件衣服洗完之前不能洗另外一种衣服. Dearboy和 他女朋友可以同时一起洗衣服,但是不能同时洗同一件衣服,也不能同时洗不同种颜色的衣服. 一 只每件衣服所需时间,问最少花费多少时间可以全部洗完. 分析: 首先可以很直观的判定, 一定是把一种颜色的所有衣服都洗完再接着洗另外一种颜色的衣服,洗每种颜色所有衣服的总时间是分开独 立的. 关键是洗同一种颜色

[JVM]垃圾收集算法

本文"垃圾收集算法"节选自<深入理解Java虚拟机:JVM高级特性与最佳实践>[作者:周志明] 由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,因此本节不打算过多地讨论算法的实现,只是介绍几种算法的思想及其发展过程. 1 标记-清除算法 最基础的收集算法是"标记-清除"(Mark-Sweep)算法,如它的名字一样,算法分为"标记"和"清除"两个阶段:首先标记出所有需要回收的对

jvm系列(三):GC算法 垃圾收集器

概述 垃圾收集 Garbage Collection 通常被称为"GC",它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了. jvm 中,程序计数器.虚拟机栈.本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的. 对象存活判断 判断对象是否存活一般有两种方式: 引用计数:每个对象有一个引用计数属性