文档库 最新最全的文档下载
当前位置:文档库 › 树型动态规划 tree dp

树型动态规划 tree dp

树型动态规划 tree dp
树型动态规划 tree dp

树型动态规划的应用

(讲稿)

树型dp是近年来才出现并迅速流行的一种新体型,到目前已经在各种oi竞赛中广泛出现,今天我们就对它做一点基本的探讨。

首先我们结合一个例子来说明什么是树型dp以及它的一些特点。

我们先来简述一下题意,题目给出了一棵圣诞树,树上的每个结点都有一盏灯,一盏灯可以打开当且仅当它的所有孩子结点上的灯是开的,最终要将根结点上的灯打开,每一种不同的开灯方案都对应着一个在任意时刻同时亮着的灯的数目的最大值,要求一种开灯方案,使得这个最大值最小。

问题描述

这是安徽省1999年省赛的题目,虽然比较古老,但是很有典型性。

如图,根结点是C,他有3个孩子,为了要打开1,我们要打开D、B、E,从直观上考虑,,我们如果计划先打开B,那么一定不会在还没有打开B之前就去进行一些对打开B没有帮助的工作,比如试图打开D,这不难证明,我们完全调整一下策略,先打开了B,再去打开D,这样至少不必原来的方案差,那么我们再来考虑如何打开B,这是我们需要处理的是以B为root的一棵树,而目标也是一样的,使得在任意时刻同时亮着的灯的数目的最大值最小,我们发现这个问题与原问题是十分类似的,实际上这就是本问题的最优子结构,它完全符合动态规划的性质,也可以dp求解,比如我们求出打开打开一个结点root的所有孩子son[1],son[2],son[3]…son[k]分别需要dp[1],dp[2],dp[3],…,dp[k],且dp数组已经按照从大到小排序,那么我们就应该按照这个顺序来开灯,既先开第一个孩子,…….,本问题得以解决。

以上的问题还可以做出一些拓展,OIBH#8练习赛的攻占巴格达一题就是由本题引申而来的,后面我们会详细讨论。

上面是例子不难,我们来归纳一下树型dp这种dp模型的一般特点。

1 题目往往是一个树的模型

2 题目往往是要求一个最优化问题

3 题目的问题具有最优子结构,可以递归求解

4 树的优美性可以保证dp的无后效性

下面我们由易到难看几个例子:

Baltic Gems

题目描述

题目的意思十分简单,给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数,唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小。

看到树的模型,又是一个最优化问题,我们自然想到了树型dp,但是应该怎样运用呢?

我们来看这个最简单的例子,我们先尝试为根结点1标上一个值,假设我们标上了1,那么接下来要为以2、3、4、5为根的子树标值,因为题目中的限制条件,这些子树的根都不能再标上1,而这些子树之间彼此并不存在制约关系,所以我们可以分别递归的加以解决,dp的算法边产生了:

f[root,i]=min{f[son1,i1](i1<>I)}+ min{f[son2,i2](21<>I)}+ min{f[son3,i3](i3<>I)}+…+ min{f[sonk,ik](k1<>I)}

其中f[I,j]表示在以I为根的这棵树中如果根I标上了j,最优的结果是多少。

但是随即又出现了一个问题,题目中最多会有10000个结点,就是说最多会有10000种颜色,那么我们的dp算法在时间和空间上都是无法承受的,但是实际上颜色数不会太多,这从直观上很容易理解,实战时们可以让程序的规划范围尽量大,本题中取到200就足够了,事实上经过实验,最多只要3中颜色就可以了,具体的证明我还没有想明白,欢迎大家与我讨论。

上面的这个题目状态比较明显,状态转移也不难想到,但是更多的题目需要一定的分析才能找到合适的dp方法。

Noi2003

题目描述

这是noi继2002年后连续第二年出现树型dp的题目,2002年的dragon在srbga的书上讲的非常详细了,这里着重看一下jerrygen。

首先明确一点,题目中所有的路径都是指树上两结点间的唯一路径也是最短路径,我们首先来看一下这种最长的情况可能怎样出现。

这是唯一两种路径的分布情况,对于第一中情况,我们只要求出在树上距y最远的两个点就可以了,但是第二中情况就比较复杂了,我们发现从x,y,z上很难找到突破口,不妨把目光投向这两个路径的交点o,接着我们有了惊喜的发现,ox,oy,oz一定是距离点o 最远的三个点!我们只要对每个点分别求出距离它最远的三个点就可以了。

这样我们最终将问题化归为,对与树中的所有点,求出在树中到他距离最远的三个点的距离,这很明显可以dp,问题可以解决了。

最后再来看一个模型更加隐蔽的题目

Balkan

[问题描述]

有一个部族有N个人,这里有一个他们的家族树,1是根节点表示父亲和儿子的关系。节点1是树根。他们要在神圣的山的西边进行一个奇特的会议,就坐在一排桌子旁边,如下图。每个人都尽可能的往前面的桌子坐,如果那个桌子上当前没有他的儿子或者父亲。

Mountain

现在让你确定一个他们就坐的顺序,使得他们占的桌子数最多。

任务

求能占有的最多桌子数

[算法分析]

这是Balkan Olympiad Informatics 2003的题目,题目看上去似乎无从下手,下面我们来一步一步分析。

首先来看一下部落成员就坐的规则:每个人都尽可能的往前面的桌子坐,如果那个桌子上当前没有他的儿子或者父亲。这是题目中的描述,我们的目标是要占据尽量多的桌子,所以我们希望人们就坐时越靠后越好,这从直观上似乎不难想到,再仔细想一想,我们只需要一个人的座位尽量靠后就可以了,假设最终坐在最后一个位置上的人是root,他所坐的桌子是m,那么1..m-1号桌子上必然有他的父亲或儿子,我们要得到的是一个最大的m,使得1..m-1都有root的儿子或父亲,但是怎样得到最大的m呢?

我们可以以root为根建立一棵树,root的孩子就是它在部落中的儿子及父亲,假设在树中root共有k个孩子,它们为son[1]..son[k],那么son[I]的孩子仍然是它在部落中的的所有孩子及父亲,但不能包括root,以次类推我们可以建立一棵树,看到这棵树,我们很自然的联想到了树型动态规划,那么根据最优子问题的定义,我们又会提出这个猜想:为了使root坐的尽量靠后,是否需要让root的孩子son[1]..son[k]都首先坐的尽量靠后呢?答案是显然的,证明并不困难,这里省去了。

下面的工作就是在一棵树上面实行动态规划,这个过程比较简单,只是这个题目状态值的计算比较特殊,具体说来就是已知root的k个孩子最远分别能够坐到farthest[1],farthest[2],..farthest[k],如何计算出root最远能够坐到哪张桌子,这个过程用一个扫描即可完成。

最后我们还面临着一个很严峻的问题,tribe中最多会有100 000个成员,如果以每个人建立一棵树再dp一次显然是要tle的,时间限制只允许我们建立一次树就必须得出答案,其实我们可以先由底推倒顶再由顶反推到底。

到这里这个问题已获得了解决,空间复杂度为O(N),时间复杂度为O(N*logN),其中logN 表示问题可能的最大答案,也就是我们在扫描计算状态值时最大可能的时间耗费,空间和时间都符合题目的要求。

OIBH#8练习赛

题目描述

这个问题乍看与引例圣诞树非常相似,但是有一个最大的区别,圣诞树一题中指定了树的根,我们有明确的规划方向,但是这个题目中树根是不确定的,也就是任何一个城市都可能是我们最后要控制的城市,这是我们首先遇到的问题。

现在我们先撇开这个困难不谈,如果我们已经确定了最后要控制的城市,那么怎样才能使调动的军队最少呢,可以看出这个问题与引例几乎是一样的,用同样的方法我们可以解决这个问题。

现在在回到原问题中来,我们有了一种很自然的想法,枚举每一个城市为树根,然后

依次计算一下,但是n<=100,000,这显然是不可行的,那么我们算法中最大的冗余在哪里呢?我们一共只要处理n个城市,但是按照刚才的方法,我们枚举了每个城市作为一次树根,每次要对每个城市计算一次,一共对任意一个城市都计算了n次,这才是制约算法效率最大的瓶颈,巨大的数据范围要求我们对每个城市只能做常数次的计算,实际上我们可以仿照刚才的方法,由底向上推一次,再由上到下推一次就可以了。

以上我们对树型dp问题做了一个简单的介绍,我要讲的就是这些,谢谢大家!

动态规划专题(六):树型动态规划

动态规划专题(六):树型动态规划 (重庆巴蜀中学黄新军) 信息学竞赛中通常会出现这样的问题:给一棵树,要求以最少的代价(或取得最大收益)完成给定的操作。有很多问题都是在树和最优性的基础上进行了扩充和加强,从而变成了棘手的问题。这类问题通常规模较大,枚举算法的效率无法胜任,贪心算法不能得到最优解,因此要用动态规划解决。 和一般动态规划问题一样,这类问题的解决要考虑如下三步: 1、确立状态:几乎所以的问题都要保存以某结点为根的子树的情况,但是要根据具体问题考虑是否要加维,加几维,如何加维。 2、状态转移:状态转移的变化比较多,要根据具体问题具体分析,这也是本文例题分析的重点。 3、算法实现: 由于模型建立在树上,即为树型动态规划。 【例题1】二叉苹果树 【问题描述】 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点),这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。 我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树: 现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最多能留住多少苹果。 【文件输入】 第1行2个数,N和Q(1<=Q<=N,1

树型动态规划(C++版)

树型动态规划 补充二叉树的遍历的相关知识: 在二叉树的应用中,常常要求在树中查找具有某种特征的结点,或者对全部结点逐一进 行某种处理。这就是二叉树的遍历问题。所谓二叉树的遍历是指按一定的规律和次序访问树 中的各个结点,而且每个结点仅被访问一次。“访问”的含义很广,可以是对结点作各种处 理,如输出结点的信息等。遍历一般按照从左到右的顺序,共有3 种遍历方法,先(根)序遍历,中(根)序遍历,后(根)序遍历。 先序遍历的操作定义如下: 若二叉树为空,则空操作,否则 ①访问根结点 ②先序遍历左子树 ③先序遍历右子树 先序遍历右图结果为:124753689 中序遍历的操作定义如下: 若二叉树为空,则空操作,否则 ①中序遍历左子树 ②访问根结点 ③中序遍历右子树 中序遍历右图结果为:742513869 后序遍历的操作定义如下: 若二叉树为空,则空操作,否则 ①后序遍历左子树 ②后序遍历右子树 ③访问根结点 后序遍历右图结果为:745289631 满二叉树: 一棵深度为h且有 2^h-1个结点的二叉树。 满二叉树一定为完全二叉树,但是完全二叉树不一定为满二叉树。 若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。 满二叉树有如下性质: 如果一颗树深度为h,最大层数为k,且深度与最大层数相同,即k=h; 1、它的叶子数是:2^(h-1) 2、第k层的结点数是:2^(k-1) 3、总结点数是:2^k-1 (2的k次方减一) 4、总节点数一定是奇数。 完全二叉树:

若设二叉树的深度为h,除第h 层外,其它各层(1~h-1) 的结点数都达到最大个数,第h 层所有的结点都连续集中在最左边,这就是完全二叉树。 1、二叉树的序遍历 题目描述Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述Input Description 第一行一个整数n,表示这棵树的节点个数。 接下来n行每行2个整数L和R。第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号。 输出描述Output Description 输出一共三行,分别为前序遍历,中序遍历和后序遍历。编号之间用空格隔开。 样例输入Sample Input 5 2 3 4 5 0 0 0 0 0 0 样例输出Sample Output 1 2 4 5 3 4 2 5 1 3 4 5 2 3 1 #include #include using namespace std; struct node{ int l; int r; }; int i,n,r,l; node tree[1000]; void work1(int x)

最优二叉查找树_动态规划

最优二叉查找树 【源程序】 //本程序测试用例为课本例题 #include #define INF 1000000000 //将这两个二维数组定义为全局变量,从而可以避免在函数之间进行参数的传递double C[100][100]; int R[100][100]; doubleOptimalBST(double p[], int n) { inti, j, k, d; int mink; //注意这里min 和sum一定要定义成double类型,否则赋不上值!!doublemin,sum; for(i=1; i<=n; i++) { C[i][i-1]=0; C[i][i]=p[i-1]; R[i][i]=i; } C[n+1][n]=0; for(d=1; d

} return C[1][n]; } int main() { int n; double p[100]; printf("请输入字符个数:"); scanf("%d",&n); printf("\n"); printf("请输入每个字符的查找概率:"); for(inti=0; i

动态规划练习试题和解答

动态规划练习题 [题1] 多米诺骨牌(DOMINO) 问题描述:有一种多米诺骨牌是平面的,其正面被分成上下两部分,每一部分的表面或者为空,或者被标上1至6个点。现有一行排列在桌面上:顶行骨牌的点数之和为6+1+1+1=9;底行骨牌点数之和为1+5+3+2=11。顶行和底行的差值是2。这个差值是两行点数之和的差的绝对值。每个多米诺骨牌都可以上下倒置转换,即上部变为下部,下部变为上部。 现在的任务是,以最少的翻转次数,使得顶行和底行之间的差值最小。对于上面这个例子,我们只需翻转最后一个骨牌,就可以使得顶行和底行的差值为0,所以例子的答案为1。 输入格式: 文件的第一行是一个整数n(1〈=n〈=1000〉,表示有n个多米诺骨牌在桌面上排成一行。接下来共有n行,每行包含两个整数a、b(0〈=a、b〈=6,中间用空格分开〉。第I+1行的a、b分别表示第I个多米诺骨牌的上部与下部的点数(0表示空)。 输出格式: 只有一个整数在文件的第一行。这个整数表示翻动骨牌的最少次数,从而使得顶行和底行的差值最小。 [题2] Perform巡回演出 题目描述: Flute市的Phlharmoniker乐团2000年准备到Harp市做一次大型演出,本着普及古典音乐的目的,乐团指挥L.Y.M准备在到达Harp市之前先在周围一些小城市作一段时间的巡回演出,此后的几天里,音乐家们将每天搭乘一个航班从一个城市飞到另一个城市,最后才到达目的地Harp市(乐团可多次在同一城市演出). 由于航线的费用和班次每天都在变,城市和城市之间都有一份循环的航班表,每一时间,每一方向,航班表循环的周期都可能不同.现要求寻找一张花费费用最小的演出表. 输入: 输入文件包括若干个场景.每个场景的描述由一对整数n(2<=n<=10)和k(1<=k<=1000)开始,音乐家们要在这n个城市作巡回演出,城市用1..n标号,其中1是起点Flute市,n是终点Harp市,接下来有n*(n-1)份航班表,一份航班表一行,描述每对城市之间的航线和价格,第一组n-1份航班表对应从城市1到其他城市(2,3,...n)的航班,接下的n-1行是从城市2到其他城市(1,3,4...n)的航班,如此下去. 每份航班又一个整数d(1<=d<=30)开始,表示航班表循环的周期,接下来的d个非负整数表示1,2...d天对应的两个城市的航班的价格,价格为零表示那天两个城市之间没有航班.例如"3 75 0 80"表示第一天机票价格是75KOI,第二天没有航班,第三天的机票是80KOI,然后循环:第四天又是75KOI,第五天没有航班,如此循环.输入文件由n=k=0的场景结束. 输出: 对每个场景如果乐团可能从城市1出发,每天都要飞往另一个城市,最后(经过k天)抵达城市n,则输出这k个航班价格之和的最小值.如果不可能存在这样的巡回演出路线,输出0. 样例输入: 样例输出:

浅谈我国动态规划算法研究与应用

动态规划算法研究与应用 1.引言 动态规划被认为是组成运筹学其中的一部分,也被当成为进行运算决定时最好的一种数学方式。在1950年左右,美国相关方面的几位数学家,对阶段决策期间关于优化的问题做了大量的研究,并发布著名的最优化理论,将众多的阶段变成了一个一个单一的问题,并分别进行解答,最后,发明了能够处理这种相关优化方面事情新的解决措施——动态规划。到了1957年,创造出了Dynamic Programming这一名著,被称为该领域创作第一人[1]。 在数学和计算机科学领域,动态规划算法对于求解最优解的问题方便快捷。动态规划方法经常用来解决生活中的实际问题,这些问题往往可以分解为很多个子问题,每个子问题都有一个对应解,其中的临界值就是我们所要求得的最优解。动态规划并非一种数学算法,而是用于最优化解题的一种技巧和方法。它非但不具有一个标准的数学方程式,不能够推导出清晰明确的解题步骤,更不具备万能性。对于要解决的若干问题,一定要建立在正确理解的基础上具体问题具体分析,用我们现有的数学知识和丰富的想象力创建模型,结合日常的技巧分析求解。客观人为的介入时间和空间因素,只要可以分为若干子问题的多状态过程,就可以用此方法快速求解。 2.动态规划算法简介 动态规划诞生之后,很快就在在工业生产、金融管理、工程技术、和资源最大化利用等领域得到了好评。在处理路线规划、物品进出库管理、资源最优化利用、更换设备、顺序、装载等问题,动态规划算法相比于其他算法更有优势而且更加便捷。 2.1基本原理 其主要的理论可以被理解成是将求解的划分成若干个子问题,并将其称作为N,然后这些子问题又有N个解的情况,其中这些可行解之中一定会有一个最优解,研究动态规划也就是希望能够找到最优解[2]。 如何能够合理的推导出基本的最优化方程式和找出唯一的临界值是研究动

动态规划讲解大全(含例题及答案)

动态规划讲解大全 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。1957年出版了他的名著Dynamic Programming,这是该领域的第一本著作。 动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。 虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不象前面所述的那些搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。因此读者在学习时,除了要对基本概念和方法正确理解外,必须具体问题具体分析处理,以丰富的想象力去建立模型,用创造性的技巧去求解。我们也可以通过对若干有代表性的问题的动态规划算法进行分析、讨论,逐渐学会并掌握这一设计方法。 基本模型 多阶段决策过程的最优化问题。 在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。当然,各个阶段决策的选取不是任意确定的,它依赖于当前面临的状态,又影响以后的发展,当各个阶段决策确定后,就组成一个决策序列,因而也就确定了整个过程的一条活动路线,如图所示:(看词条图) 这种把一个问题看作是一个前后关联具有链状结构的多阶段过程就称为多阶段决策过程,这种问题就称为多阶段决策问题。 记忆化搜索 给你一个数字三角形, 形式如下: 1 2 3 4 5 6 7 8 9 10 找出从第一层到最后一层的一条路,使得所经过的权值之和最小或者最大. 无论对与新手还是老手,这都是再熟悉不过的题了,很容易地,我们写出状态转移方程:f(i, j)=a[i, j] + min{f(i+1, j),f(i+1, j + 1)} 对于动态规划算法解决这个问题,我们根据状态转移方程和状态转移方向,比较容易地写出动态规划的循环表示方法。但是,当状态和转移非常复杂的时候,也许写出循环式的动态规划就不是那么

某oier个人竞赛经验

概述 相对于其他学科竞赛,信息学竞赛发展比较初步,竞争要小一些——具体体现在:如果能把水题的分拿稳了就基本接近一等线了。特别是在四川省,这种显现比较明显,一等奖分数线会比苏浙一带低上一大截。所以“稳”是一个非常重要的要素,不少接触信息学一年甚至几个月就拿下一等奖的传说,大抵也是由于考试时有仔细、稳定的良好习惯。所以就目前来讲,一等奖并不难拿,但并不只是单纯地强调智力和知识就可以得到,需要强大的心理承受能力(即“淡定”)、丰富的编程经验、考试技巧来作后盾。 另外,根据笔者的观察,信息学竞赛的考察近年来有从“知识”到“能力”的偏移趋势。以往的题往往会考一些特定的知识点(比如动态规划、图论之类),一般可以由模板算法套用变形解决。但是今年的题基本没有考这些——除了某些不能拿全分的数据可以用动态规划解决。这些题的解法事后看来或许会很简单,而且编程难度并不复杂(一般也就100行左右,手速快点的同学最多15分钟就可以敲完,调试经验丰富的同学二十几分钟就可以调试通过),但是某些点会比较巧妙,如果考试时不静下心去思考的话很难想到,如果没有大量的做题经验的话也容易卡住,有时一个得自平时经验的简单优化就可以救起一个复杂度(包括时空复杂度和编程复杂度)极高的程序。 拿郭怡辰同学为例,来说明经验积累以及考场应变的重要性。为了求一段连续区间的和,他使用了比较高级的“树状数组”数据结构,但实际上只需要一个简单的数组就可以解决(即令S[i]为前i个数的和,那么第i个数到第j个数的和就是S[j]-S[i-1])。前者是专门处理数字会动态改变的数组的求和算法,而后者则是处理静态的数组求和算法。而这个经验任何一本书都不会专门去讲(如果你找到了那真是幸运),但是在刷题的过程中(包括阅读标程的过程)可以很容易得到。如果找到了正确的方法(性价比最高的方法),会在考场上省下大量的脑力和时间。 日常训练 模拟赛 首先要强调一点,【注意】,这也是笔者吃了很多亏的一点,那就是实战训练的重要性!七中本部的同学经常都做套题训练,即使是在他们知识结构尚不完整的阶段,而本校因为组织的问题(原本没啥组织,希望几代之后能建立完善的信息学竞赛组织),并没有强调套题训练的重要性。因为套题训练可以给你直接的考场经验,而这些是非常重要的: 1、做题策略:怎么在第一眼就看出哪一道题是最简单的,应该按照什么顺 序去做?一道题该花多少时间思考、多少时间去实现、多少时间去调试? 你的方法是否能在以上时间内完美实现?在考场上你能“hold住”多复

动态规划习题答案

2.某公司有资金4百万元向A,B和C3个项目追加投资,各个项目可以有不同的投资额(百万元计),相应的效益如表所示。问怎样分配 资金,使总效益值最大?## 表8-47 解:设S-A,B,C项目的总投资额,S-B、C项目的总投资额21S-C 项目的投资额;3X-k项目的投资额;k(X-A项目的投资额,X -B项目的投资额,X-C项目的投资额)312W(S,X)-对K项目投资X后的收益:W(S,X)=W (X) kkkkkkkkk T (S,X)-S=S-X k k+1kkkk f (S)-当K至第3项目允许的投资额为S时所能获得的最大收益。kkk为获得最大利润,必须将4百万全部投资,假设有4阶段存在,有S=0,建立递归方程4f(S)=0 k4

f (S)=max{ W (X)+f(S)} k=3,2,1 k+1kk +1kkk X∈D(S) kkk第一步,K=3 f(S)=0 44 f (S)=max{W (X)+f (S)} 434333X∈D(S) 333S=S-X3 34 第二步:)} f (S (X (S)=max{W)+f K=2 322322) X ∈D(S 222-X =S S232 W (X)+f (S-X) 22322

第三步:)} (S (X) =max f (S {W)+ f K=1 211121) D X∈(S111- X S= S 1 21 ) (X- X)+ f (SW1 12 11 S=4 →S=1 →S=1 312↓↓ ↓ X*=3 X*=0 X*=1 312百万。1投资C 不投资B 百万,3投资A. 总收益164百万元。 3.(最优分配问题)有一个仪表公司打算向它的3个营业区设立6家销售店。每个营业区至少设一家,所获利润如表。问设立的6家销售店数应如何分配,可使总利润最大?

Power point 七道题

Power point 题 注意:作业中,可能有些动作的名称,你使用的的计算机中没有,这时可以更换动作。 一、请在题目一建立的Powerpoint文件中建立如下内容: ①幻灯片具体内容为: 第一张幻灯片的版式为“标题幻灯片”,内容为:主标题是“操作系统”,并将字体设置为宋体、54磅加粗;副标题是“菜单的4种形式”,字体设置成宋体,44磅; 第二张幻灯片的版式为“项目清单”,内容为:标题是“Windows XP的四种菜单”,字体设置为宋体,44磅,加粗倾斜:各项目点的内容如下: Windows XP中有如下四种典型菜单 1、控制菜单; 2、菜单栏上的下拉菜单; 3、开始菜单; 4、快捷菜单。 并将它们的字体设置为宋体,36磅。 ②将两张幻灯片背景的填充效果设置成“花束”纹理,幻灯片的切换方式设置为:“水平百叶窗”,预设主体文本动画效果为“右侧飞入”。 二、制作三张幻灯片。 (1)第一张幻灯片为标题幻灯片,输入所学专业名称,你个人基本信息(班级,学号,姓名)。其它幻灯片内容和幻灯片的背景、格式等自定。 (2)第二张幻灯片介绍你所学专业特点,第三张幻灯片包含你所学专业的基本应用方向和应用领域。 (3)第二,第三张幻灯片应包含图片(艺术字)等相关对象。并设置动画效果。 (4)要求标题文本框“从中部向左右”展开;主要文字“盒壮展开”;图片从右侧飞入;幻灯片切换效果为中速“水平百叶窗”,换页方式为“单击鼠标换页”。 三、Powerpoint操作题: (1)建立页面一:版式为"剪贴画与文本";标题内容为"我的体育爱好"并设置为宋体48;文本内容为:足球运动、网球运动、滑雪运动。在剪贴画框中添加"工作人员"类别中的"闯关"剪贴画,并设置为"左侧飞入"动画; (2)将第一张幻灯片中文本内容升级,使其分别成为新幻灯片的标题; (3)在第二张幻灯片的剪贴画框中添加"运动"类别中的"足球"剪贴画,并设置为"缩放"中

论文—浅谈室内区域活动规则的建立

浅谈室内区域活动规则的建立 室内区域活动是教师根据幼儿的发展现状和发展目标,创设多种领域的学习区域。提供活动材料,让幼儿通过自身的摆弄、操作去感知、思考、寻找问题的答案。而教师的任务是关注幼儿在活动中的表现和反应,敏感的察觉他们的需要,及时以适当的方式应答,形成合作探究式的师生互动。 我国著名学前教育家陈鹤琴先生曾说过:“小孩子是生来好动的,是以游戏为生命的”。孩子们就是在游戏中、在玩中一天天长大和进步的。如何使游戏真正成为孩子们自己的游戏,如何在游戏中最大限度的发挥孩子们的主观能动性,他们玩什么,怎样玩,玩多久等等,这就需要我们放开手,给予他们自由发挥潜能的机会。 爱玩游戏是每个孩子的天性,游戏一直以他独特的魅力吸引着无数的孩子。人们对游戏的认识越来越深入。而区角活动作为一种教育游戏活动,同样受到了孩子们的普遍欢迎。它重在创设一种宽松、和谐的环境,提供丰富的材料,以及选择广泛的内容。而教师在此过程中只是一个观察者,引导者。因此,孩子们学的特别轻松、自然、没有压力,他们可以做自己想做的事。这种个别化的教育形式尊重了幼儿的个体差异,满足了幼儿个体发展的需要。 都说“没有规矩,不成方圆”就像象棋里的楚河汉界,马路上的红绿灯,都是规则,幼儿园区域活动也都应有合适的规则,这样才能给幼儿充分自主活动的机会,帮助他们有计划、有目的、守规则地进行区域游戏,才好让游戏进行得更加顺畅。 一、规则包含的内容 1、人数的规定 幼儿园活动空间小,各个区域提供的材料比较有限,也有幼儿兴趣不同,所以对每个活动区角规定人数是很有必要的。它提示幼儿关注游戏开展的情况,也能培养孩子的协商能力。

我班在设计区域游戏人数时,每个人都有一个写着自己的名字的小钥匙,在各个区域明显的位置贴好对应数的口袋,当幼儿听到音乐时把自己的小钥匙插到 各区的口袋里,只要幼儿拿好进区卡插满进区标志后,后面的幼儿就要选择其它的区域进行游戏。比如,我班的“美食城”为幼儿提供了许多的富有天津特产的小吃,十八街麻花、煎饼果子、狗不理包子、龙嘴茶汤、传统火锅。这个角色区一直是孩子们的最爱。平时活跃的、内向的,每到区域开始,都争先恐后地去插卡,每次都很拥挤,但是看到区域卡插满了,就知道去别的区域玩了。 2、游戏的玩法 每个区域的游戏玩法,我们都可以在规则中告诉幼儿,小班时我们大都采用图画的方式告诉幼儿;中班采用了用图文并茂的形式,但还是文字比较多,幼儿还不太看得懂,所以我们也就采用照片的形式,将幼儿在玩的过程将照片拍下来,在规则区展示,这样孩子们就更加容易理解了。如中班上学期的时候,我们在益智区提供了系鞋带,现在的孩子都不会系鞋带,在这个区域的规则中,我们一个老师在示范,另外一个老师就将步骤拍下来展示在区域规则区。那天,班上的赵朗琪小朋友去益智区玩,她拿起了鞋面,就系鞋带,可是总也弄不好,这时张佳茵小朋友过来了,看了一会儿,她发现规则区的照片,就拉着赵朗琪的手说:“我们一起去看那边的照片。”说着,两个人就看着照片一起“研究”起来,终于在区域游戏时间快到的时候,两个人兴高采烈的过来告诉我说:“老师,我们会系鞋带了。我们两个看着照片做的。”通过这个案例,我发现,提供给孩子直观的游戏玩法,还是很有用的。 3、游戏中应注意的事项 我觉得规则中应该提醒幼儿该注意的事项,这也是非常重要的,每个区域都会有不同的注意内容,如阅读区我们会让孩子要注意安静看书,不破坏书,一页一页翻书;在美工区,我们会让孩子注意,使用剪刀时不剪到手,纸屑要放入垃圾桶,不能扔地上等等。有一次,我们玩区域活动,孩子们玩的很尽兴,音乐一响,每个孩子都在忙碌,忙着收拾自己在区域的材料,收完后孩子们都回到了位置,等待老师的评价,当我

动态规划习题

第七章动态规划 规划问题的最终目的就是确定各决策变量的取值,以使目标函数达到极大或极小。在线性规划和非线性规划中,决策变量都是以集合的形式被一次性处理的;然而,有时我们也会面对决策变量需分期、分批处理的多阶段决策问题。所谓多阶段决策问题是指这样一类活动过程:它可以分解为若干个互相联系的阶段,在每一阶段分别对应着一组可供选取的决策集合;即构成过程的每个阶段都需要进行一次决策的决策问题。将各个阶段的决策综合起来构成一个决策序列,称为一个策略。显然,由于各个阶段选取的决策不同,对应整个过程可以有一系列不同的策略。当过程采取某个具体策略时,相应可以得到一个确定的效果,采取不同的策略,就会得到不同的效果。多阶段的决策问题,就是要在所有可能采取的策略中选取一个最优的策略,以便得到最佳的效果。动态规划(dynamic programming)同前面介绍过的各种优化方法不同,它不是一种算法,而是考察问题的一种途径。动态规划是一种求解多阶段决策问题的系统技术,可以说它横跨整个规划领域(线性规划和非线性规划)。当然,由于动态规划不是一种特定的算法,因而它不象线性规划那样有一个标准的数学表达式和明确定义的一组规则,动态规划必须对具体问题进行具体的分析处理。在多阶段决策问题中,有些问题对阶段的划分具有明显的时序性,动态规划的“动态”二字也由此而得名。动态规划的主要创始人是美国数学家贝尔曼(Bellman)。20世纪40年代末50年代初,当时在兰德公司(Rand Corporation)从事研究工作的贝尔曼首先提出了动态规划的概念。1957年贝尔曼发表了数篇研究论文,并出版了他的第一部著作《动态规划》。该著作成为了当时唯一的进一步研究和应用动态规划的理论源泉。1961年贝尔曼出版了他的第二部著作,并于1962年同杜瑞佛思(Dreyfus)合作出版了第三部著作。在贝尔曼及其助手们致力于发展和推广这一技术的同时,其他一些学者也对动态规划的发展做出了重大的贡献,其中最值得一提的是爱尔思(Aris)和梅特顿(Mitten)。爱尔思先后于1961年和1964年出版了两部关于动态规划的著作,并于1964年同尼母霍思尔(Nemhauser)、威尔德(Wild)一道创建了处理分枝、循环性多阶段决策系统的一般性理论。梅特顿提出了许多对动态规划后来发展有着重要意义的基础性观点,并且对明晰动态规划路径的数学性质做出了巨大的贡献。 动态规划在工程技术、经济管理等社会各个领域都有着广泛的应用,并且获得了显著的效果。在经济管理方面,动态规划可以用来解决最优路径问题、资源分配问题、生产调度问题、库存管理问题、排序问题、设备更新问题以及生产过程最优控制问题等,是经济管理中一种重要的决策技术。许多规划问题用动态规划的方法来处理,常比线性规划或非线性规划更有效。特别是对于离散的问题,由于解析数学无法发挥作用,动态规划便成为了一种非常有用的工具。 动态规划可以按照决策过程的演变是否确定分为确定性动态规划和随机性动态规划;也可以按照决策变量的取值是否连续分为连续性动态规划和离散性动态规划。本教材主要介绍动态规划的基本概念、理论和方法,并通过典型的案例说明这些理论和方法的应用。 §7.1 动态规划的基本理论 1.1多阶段决策过程的数学描述 有这样一类活动过程,其整个过程可分为若干相互联系的阶段,每一阶段都要作出相应的决策,以使整个过程达到最佳的活动效果。任何一个阶段(stage,即决策点)都是由输入(input)、决策(decision)、状态转移律(transformation function)和输出(output)构成的,如图7-1(a)所示。其中输入和输出也称为状态(state),输入称为输入状态,输出称为输出状态。

浅谈幼儿园区域活动规则的探索

浅谈幼儿园区域活动规则的探索 姓名:胡君教龄:17年职务:年级组长地址: 江苏省无锡市长安街道新惠幼儿园 邮编:214174 电话号码:83562280 摘要: 区域活动是一种人为创设自然情景下的幼儿自愿、自发的游戏,是我们现在普遍采取的一种教育活动形式。在幼儿园里要有序有质量的开展好区域活动,那首先就要制定出有效的规则:1、在讨论中共同商讨2、在试误中逐步形成3、在活动前明确规定。另外是区域活动规则的遵守,我们可以运用以下三种方法来更好的帮助幼儿来掌握:1、暗示法。2、图示法。3、提醒法。 区域活动是一种人为创设自然情景下的幼儿自愿、自发的游戏,是我们现在普遍采取的一种教育活动形式。区域活动以其个别化的教育形式尊重了幼儿的个体差异,满足了幼儿个体发展的需要,成为幼儿园所喜欢的活动形式,也是当前幼儿园落实《幼儿园教育指导纲要》所指出的幼儿园教育应为幼儿“提供自由活动的机会,支持幼儿自主地选择、计划活动。”“为每个幼儿提供表现自己长处和获得成功的机会,增强其自尊心和自信心。”的最有效的措施。而区域活动所具有的自选性、自主性、小组活动,教育价值依托于操作材料、情境和相应的活动中的特点,决定了教师对区域活动的指导更多的只能是以间接的方式来进行。再加之,区域活动的规则所承载的独有的教育价值,如可以有机地将教育者的教育意图渗透其中;可以活动中起着组织、约束、调整幼儿活动行为和相互关系,最大限度地保证幼儿的活动权利等方面的作用,使得我们清楚地意识到,抓好区域活动规则的建设工作,是保证区域活动有效地开展的重要前提。 那么在区域活动中,如何帮助幼儿建立起适宜有效的规则,并让幼儿在活动中自觉地遵守呢?通过多年的实践,下面就此问题浅淡几点个人的看法。 一、区域活动规则的制订 区域活动既是幼儿的一种学习活动形式,同时也是教师所组织的一种教育活动形式。因而,区域活动规则的制订应该是由教师和幼儿来共同完成,偏废某一方都是不妥的。在实践中,我们慢慢的总结出师幼共同制订活动规则的三种比较有效的方法: 1、在讨论中共同商讨 讨论往往是围绕在区域活动中所遇到的带有普遍性的“问题”而展开的,这种“问题”一般是会影响到该活动正常进行,又是幼儿无法自行解决的。讨论的目的就是要建立起相应的规则来解决当前所面临的“问题”。如,有些区域因人数较多,而发生了幼

动态规划试题

动态规划 装箱问题(01背包): 有一个箱子容量为VV(正整数,0≤V≤20000),同时有n个物品(0

完全背包的模板题面是这样的:设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干件(同一种物品可以无限选取),使其重量的和小于等于M,而价值的和为最大。 完全背包 [无限量]的采摘药输入: 70 3 71 100 69 1 1 2 输出:140 每个数组在满足条件,可以遍历多次 01背包 实现代码:采药-传送门 输入:

70 3 71 100 69 1 1 2 输出:3 每个数组遍历一遍 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1-5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N 元)的前提下,使每件物品的价格与重要度的乘积的总和最大。 设第jj件物品的价格为v_[j],重要度为w_[j],共选中了k件物品,编号依次为j_1,j_2,…,j_k,则所求的总和为: w_[j_k]v[j1]×w[j1]+v[j2]×w[j2]+…+v[jk]×w[jk]。

浅谈对系统工程的认识

谈对系统工程的认识 摘要:随着社会经济发展和科学的进步,人类社会出现了越来越多的大型复杂的系统。这些系统的规划建造及运用都要建立在科学的基础之上,系统工程作为对系统的进行组织管理的技术便由此而产生。 1.1引言 “系统”这个名词,这个词在拉丁语中,是“在一起”“放置”的意思,因此,很久以来,他都是表示群体集合的概念的。但作为一个科学概念,还是在20世纪以来由于科学发展和人类文化的累积才是他的内涵逐步明确起来。他作为一门现代化的学科,还是从20世纪40年代开始的,是由美国贝尔电话公司在发展微波通信网时,首先提出的“系统工程”这个名词,并提出了工程按系统思想分成阶段进行工作的一套工作方式。后来,由于二战的需要,为了把整个军事系统的行动从科学上加以研究,便形成了运筹学这门学科,并且起到了很大的作用。战后,人们把它应用到经营管理方面,也起到了重要的作用,使它成为系统工程的一个有力基础。在1957年,第一本《系统工程》专著出版,标志这这门学科正式产生。 现在,系统工程已经有了长远的发展,他的思想和方法来自不同的行业和领域,又吸收了不同的邻近学科理论,所以造成了系统工程上定义的多样性,但从实用性上来说,他方法性的应用工程学科,它跨越了各个学科领域的横断性学科,从整体,全局的方向去考虑解决问题,同时,他不仅涉及到技术方面,还用在了难以精确描述上的社会,心理因素上,因此,可以说,它是一门总揽全局,着眼整体,从不同视角和不同方法来处理的系统中的各个部分,来规划和设计组建运行整个系统,是系统中的技术经济社会效果达到最优的方法性学科。 虽然说他是不可界定的,当然不妨碍我们去掌握和追随他的思想,发展他的细想。 2谈对线性规划问题的认识 2.1线性规划解释含义 前面谈到系统分析,在进行系统分析时,我们总要用所研究的系统进性描述,而线性规划,就是我们在描述系统中我们所用到的一种系统分析语言。 它是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法,它所研究的是:在一定条件下,合理安排人力物力等资源,使经济效果达到最好.一般地,求线性目标函数在线性约束条件下的最大值或最小值的问题,统称为线性规划问题。满足线性约束条件的解叫做可行解,由所有可行解组成的集合叫做可行域。决策变量、约束条件、目标函数是线性规划的三要素. 它的数学模型的一般形式是(1)列出约束条件及目标函数(2)画出约束条件所表示的可行域(3)在可行域内求目标函数的最优解 2.2线性规划问题及其数学模型 一问题的提出 例1 某工厂在计划期内要安排生产甲乙两种产品,已知条件如下,如何安排计划可

树形动规题型分析

树形动规题型分析北京大学李煜东

Ural1039 没有上司的舞会 题目大意:Ural大学有N个职员,编号为1~N。他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。 F[i][0]表示以i为根的子树,i不参加舞会时的最大快乐指数。 F i0= s∈Son i Max(F s0,F[s][1]) F[i][1]表示以i为根的子树,i参加舞会时的最大快乐指数。 F i1=Happy i+ s∈Son i F s0 通过DFS求出F数组,目标就是Max(F[1][0],F[1][1])。

Nescafé8 创世纪 题目大意:上帝手中有着N(N<=1000000)种被称作“世界元素”的东西,现在他要把它们中的一部分投放到一个新的空间中去建造世界。每种世界元素都可以限制另外一种世界元素,上帝希望所有被投放的世界元素都有至少一个没有被投放的世界元素能够限制它。 上帝希望知道他最多可以投放多少种世界元素? 每个世界元素的出度都是1(只能限制另外一种),所以题目中的限制条件构成内向树森林。 如果题目中的限制条件构成的图是一棵树,那么DP方法和上一题类似:F[i][0]表示i没有被投放时,以i为根的子树里最多可以投放多少种世界元素。 F[i][1]表示i被投放时,以i为根的子树里最多可以投放多少种世界元素。 F i0=s∈Son i Max(F s0,F[s][1]) F i1=Max F s0+s′∈Son i,s′≠s Max F s′0,F s′1|s∈Son i 如果是内向树,那么任意枚举基环上的一条边,先把它断开(不使用这个限制条件),在剩余的树上进行树状动规;然后再强制使用这个限制条件,再进行一次树状动规。

动态规划典型例题

1、单调递增最长子序列 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0

2、最长公共子序列 描述 如题,需要写一个程序,得出最长公共子序列。 tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则S 称为已知序列的最长公共子序列。 输入 第一行给出一个整数N(0

3、括号匹配 时间限制:1000 ms | 内存限制:65535 KB 描述 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。 如: []是匹配的 ([])[]是匹配的 ((]是不匹配的 ([)]是不匹配的 输入 第一行输入一个正整数N,表示测试数据组数(N<=10) 每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符, S的长度不超过100 输出 对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组 测试输出占一行 样例输入 4 [] ([])[] ((] ([)] 样例输出 3 2

迭代加深搜索

迭代加深搜索算法 迭代加深搜索,实质上就是限定下界的深度优先搜索。即首先允许深度优先搜索K层搜索树,若没有发现可行解,再将K+1后重复以上步骤搜索,直到搜索到可行解。 迭代加深搜索算法的实现原理及基本框架 在迭代加深搜索的算法中,连续的深度优先搜索被引入,每一个深度约束逐次加1,直到搜索到目标为止。 基本框架如下: Procedure ID-dfs(dep:integer); Var J:integer; Begin If dep>深度的限界then exit;// 如果搜索的深度大于限界,则返回上一层 For j:=1to n do// 按照规则生成子结点 If子结点安全then Begin 入栈; If子结点是目标结点then对目标结点进行处理,退出程序 Else id-dfs(dep+1); 退栈; End; End; For i:=1to depmax do// 枚举深度的限界 Begin Id-dfs(i); If运行超时then break; End; 迭代加深搜索算法的复杂度分析 从上述迭代加深搜索算法的实现过程和框架,我们可以看出,迭代加深搜索算法就是仿广度优先搜索的深度优先搜索。既能满足深度优先搜索的线性存储要求,又能保证发现一个最小深度的目标结点。(时间复杂度推算详见NOI导刊2010年第6期P26)从实际应用来看,迭代加深搜索的效果比较好,并不比广度优先搜索慢很多,但是空间复杂度却与深度优先搜索相同,比广度优先搜索小很多。 迭代加深搜索算法的应用

使用搜索算法的时候,选择正确的搜索方式很重要。当有一类问题需要做广度优先搜索,但却没有足够的空间,而时间却很充裕,碰到这类问题,我们可以选择迭代加深搜索算法。 例题:POJ 2286 The Rotation Game 四、总结 一般来说,如果目标结点离根结点远,需要遍历整棵树,可以考虑使用深度优先搜索;如果目标离根结点近,或求最小步数,则考虑广度优先搜索或迭代加深搜索;若广度优先搜索存在空间不够的问题,则考虑使用迭代加深搜索。

动态规划习题完整版

动态规划习题 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

动态规划专题分类视图数轴动规题: 题1.2001年普及组第4题--装箱问题 【问题描述】有一个箱子容量为V(正整数,0≤V≤20000),同时有n个物品(0

对于100%的数据,砝码的种类n满足:1≤n≤100; 对于30%的数据,砝码的总数量C满足:1≤C≤20; 对于100%的数据,砝码的总数量C满足:1≤C≤100; 对于所有的数据,砝码的总重量W满足:1≤W≤400000; 题3.石子归并-szgb.pas 【问题描述】有一堆石头质量分别为W1,W2,…,Wn.(Wi≤10000),将石头合并为两堆,使两堆质量的差最小。 【输入】输入文件szgb.in的第一行只有一个整数n(1≤n≤50),表示有n堆石子。接下去的n行,为每堆石子质量。 【输出】输出文件szgb.out的只有一行,该行只有一个整数,表示最小的质量差. 【样例输入】 5 5 8 13 27 14 【样例输出】 3 题4.补圣衣 【问题描述】有四个人,每人身上的衣服分别有s1,s2,s3和s4处破损,而且每处破损程度不同,破损程度用需修好它用的时间表示 (A1...As1,B1...Bs2,C1...Cs3,D1...Ds4)。不过你可以同时修补2处破损。但是这2处破损,只能是同一件衣服上的。就是说你只能同时修补一件衣服,修好了,才能修补下一件。 【输入】本题包含5行数据:第1行,为s1,s2,s3,s4(1≤s1,s2,s3,s4≤20) 第2行,为A1...As1共s1个数,表示第一件衣服上每个破损修好它所需的时间 第3行,为B1...Bs2共s2个数,表示第二件衣服上每个破损修好它所需的时间 第4行,为C1...Cs3共s3个数,表示第三件衣服上每个破损修好它所需的时间 第5行,为D1...Ds4共s4个数,表示第四件衣服上每个破损修好它所需的时间 (1≤A1...As1,B1...Bs2,C1...Cs3,D1...Ds4≤60) 【输出】输出一行,为修好四件衣服所要的最短时间。 【样例输入】 1213 5 43 6 243 【样例输出】 20 题5.光光的作业homework.pas/homework.exe 【问题描述】光光上了高中,科目增多了。在长假里,光光的老师们都非常严厉,都给他布置了一定量的作业。假期里,光光一共有的时间是k小时。在长假前,老师们一共给光光布置了n份作业,第i份作业需要的时间是ti小时。但是由于老师们互相不

相关文档
相关文档 最新文档