动态规划习题

合集下载

运筹学思考练习题答案

运筹学思考练习题答案

运筹学思考练习题答案第⼀章 L.P 及单纯形法练习题答案⼀、判断下列说法是否正确1. 线性规划模型中增加⼀个约束条件,可⾏域的范围⼀般将缩⼩,减少⼀个约束条件,可⾏域的范围⼀般将扩⼤。

(?)2. 线性规划问题的每⼀个基解对应可⾏域的⼀个顶点。

(?)3. 如线性规划问题存在某个最优解,则该最优解⼀定对应可⾏域边界上的⼀个点。

(?)4. 单纯形法计算中,如不按最⼩⽐值原则选取换出变量,则在下⼀个基可⾏解中⾄少有⼀个基变量的值为负。

(?)5. ⼀旦⼀个⼈⼯变量在迭代中变为⾮基变量后,该变量及相应列的数字可以从单纯形表中删除,⽽不影响计算结果。

(?)6. 若1X 、2X 分别是某⼀线性规划问题的最优解,则1212X X X λλ=+也是该线性规划问题的最优解,其中1λ、2λ为正的实数。

(?)7. 线性规划⽤两阶段法求解时,第⼀阶段的⽬标函数通常写为ai iMinZ x =∑(x ai 为⼈⼯变量),但也可写为i ai iMinZ k x =∑,只要所有k i 均为⼤于零的常数。

(?)8. 对⼀个有n 个变量、m 个约束的标准型的线性规划问题,其可⾏域的顶点恰好为m n C 个。

(?)9. 线性规划问题的可⾏解如为最优解,则该可⾏解⼀定是基可⾏解。

(?)10. 若线性规划问题具有可⾏解,且其可⾏域有界,则该线性规划问题最多具有有限个数的最优解。

(?)⼆、求得L.P 问题121231425j MaxZ 2x 3x x 2x x 84x x 164x x 12x 0;j 1,2,,5=+++=??+=??+=?≥=的解如下: X ⑴=(0,3,2,16,0)T ;X ⑵=(4,3,-2,0,0)T ;X ⑶=(3.5,2,0.5,2,4)T ;X ⑷=(8,0,0,-16,12)T ; =(4.5,2,-0.5,-2,4)T ; X ⑹=(3,2,1,4,4)T ;X ⑺=(4,2,0,0,4)T 。

要求:分别指出其中的基解、可⾏解、基可⾏解、⾮基可⾏解。

算法设计与分析王晓东

算法设计与分析王晓东

习题2-1 求下列函数的渐进表达式:3n^2+10n; n^2/10+2n; 21+1/n; logn^3; 10 log3^n 。

解答:3n^2+10n=O(n^2),n^2/10+2^n=O(2^n),21+1/n=O(1),logn^3=O(logn),10log3^n=O(n).习题2-3 照渐进阶从低到高的顺序排列以下表达式:n!,4n^2,logn,3^n,20n,2,n^2/3。

解答:照渐进阶从高到低的顺序为:n!、3^n、4n^2 、20n、n^2/3、logn、2习题2-4(1)假设某算法在输入规模为n时的计算时间为T(n)=3*2^n。

在某台计算机上实现并完成该算法的时间为t秒。

现有另外一台计算机,其运行速度为第一台计算机的64倍,那么在这台新机器上用同一算法在t秒内能解输入规模为多大的问题?(2)若上述算法的计算时间改进为T(n)=n^2,其余条件不变,则在新机器上用t秒时间能解输入规模多大的问题?(3)若上述算法的计算时间进一步改进为,其余条件不变,那么在新机器上用t秒时间能解输入规模多大的问题?解答:(1)设能解输入规模为n1的问题,则t=3*2^n=3*2^n/64,解得n1=n+6(2)n1^2=64n^2得到n1=8n(3)由于T(n)=常数,因此算法可解任意规模的问题。

习题2-5 XYZ公司宣称他们最新研制的微处理器运行速度为其竞争对手ABC公司同类产品的100倍。

对于计算复杂性分别为n,n^2,n^3和n!的各算法,若用ABC公司的计算机能在1小时内能解输入规模为n的问题,那么用XYZ公司的计算机在1小时内分别能解输入规模为多大的问题?解答:n'=100nn'^2=100n^2得到n'=10nn'^3=100n^3得到n'=4.64nn'!=100n!得到n'<n+log100=n+6.64习题2-6对于下列各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=θ(g(n)),并简述理由。

算法(复习题)1

算法(复习题)1

平均情况:设待查找的元素在数组中的概率为P,不在数组中的概率为1-P,若出现在数组中每个位置的概率是均等的为p/nT(n)=P1D1+P2D2+...+PiDi+(1-P)Dn+1=p/2+n(1-p/2)1.叙述分治算法和动态规划算法的基本思想,并比较两种算法的异同。

答:分治法将待求解的问题划分成K个较小规模的子问题,对这K个子问题分别求解,再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解. 动态规划将待求解的问题分解成若干的子问题,自底向上地通过求解子问题的解得到原问题的解。

动态规划将每个子问题只求解一次并将其解保存在一个表格中,当需要再次求解此子问题时,只是简单的通过查表过的该子问题的解,避免了大量的重复计算.异同:分治法求解的问题分解后的子问题都是独立的,而使用动态规划求解的问题分解后得到的子问题往往不是相互独立的。

分治法是自顶向下用递归的方法解决问题,而动态规划则是自底向上非递归解决问题。

1.简述分治算法求解过程的三个阶段。

答:(1)划分:既然是分治,当然需要把规模为n的原问题划分为k个规模较小的子问题,并尽量使这k个子问题的规模大致相同。

(2)求解子问题:各子问题的解法与原问题的解法通常是相同的,可以用递归的方法求解各个子问题,有时递归处理也可以用循环来实现。

(3)合并:把各个子问题的解合并起来,合并的代价因情况不同有很大差异,分治算法的有效性很大程度上依赖于合并的实现。

2.叙述分治法的基本思想,并分析分治法与减治法二者的区别。

答:分治法将待求解的问题划分成K个较小规模的子问题,对这K个子问题分别求解,再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解.区别:分治法是把一个大问题划分成若干个子问题,分别求解各个子问题,然后把子问题的解进行合并并得到原问题的解。

减治法同样是把一个大问题划分成若干个子问题,但是这些子问题不需要分别求解,只需求解其中的一个子问题,因而也无需对子问题的解进行合并。

《运筹学》课后答案

《运筹学》课后答案

《运筹学》课后答案《运筹学》是一门研究如何在有限资源下做出最佳决策的学科,它涉及到数学、统计学、经济学等多个学科的知识。

掌握运筹学的方法和技巧对于解决实际问题具有重要意义。

下面是《运筹学》课后习题的答案:1. 什么是线性规划问题?线性规划问题是指在一组线性约束条件下,求解一个线性目标函数的最优值的问题。

线性规划问题具有优化的特点,即找到一组满足约束条件的解,使得目标函数取得最大(最小)值。

2. 线性规划问题的标准形式是什么?线性规划问题的标准形式是指将目标函数和约束条件都写成标准形式,即目标函数为最大化(最小化)一个线性函数,约束条件为一组线性不等式和线性等式。

3. 线性规划问题的解的存在性和唯一性是什么?线性规划问题的解的存在性和唯一性是由线性规划问题的特殊结构决定的。

如果线性规划问题有有界解(即目标函数有最大(最小)值),则存在解;如果线性规划问题的目标函数有最大(最小)值,且该最大(最小)值只有一个解,则解是唯一的。

4. 什么是单纯形法?单纯形法是一种解线性规划问题的常用方法,它通过迭代计算来逐步接近最优解。

单纯形法的基本思想是从一个初始可行解出发,通过一系列变换(包括基变换、基可行解的改进等)来逐步接近最优解。

5. 什么是对偶理论?对偶理论是线性规划问题的一个重要理论基础,它通过将原问题转化为对应的对偶问题来研究线性规划问题。

对偶理论可以帮助我们理解线性规划问题的性质和结构,并且可以通过对偶问题的解来得到原问题的解。

6. 什么是整数规划问题?整数规划问题是指在线性规划问题的基础上,将决策变量的取值限制为整数的问题。

整数规划问题具有更为复杂的性质,其解的搜索空间更大,求解难度更大。

7. 什么是分支定界法?分支定界法是解整数规划问题的一种常用方法,它通过将整数规划问题分解为一系列线性规划子问题,通过不断分支和约束来逐步缩小解的搜索空间,最终找到最优解。

8. 什么是动态规划?动态规划是一种解决多阶段决策问题的方法,它通过将问题分解为一系列子问题,并且利用子问题的解来构建整体问题的解。

算法习题——精选推荐

算法习题——精选推荐

算法习题算法设计与分析试卷⼀、填空题(20分,每空2分)1、算法的性质包括输⼊、输出、确定性、有限性。

2、动态规划算法的基本思想就将待求问题分解成若⼲个⼦问题、先求解⼦问题,然后从这些⼦问题的解得到原问题的解。

3、设计动态规划算法的4个步骤:(1)找出最优解的性质,并刻画其结构特征。

(2)递归地定义最优值。

(3)以⾃底向上的⽅式计算出最优值。

(4)根据计算最优值得到的信息,构造最优解。

4、流⽔作业调度问题的johnson算法:(1)令N1={i|ai=bj};(2)将N1中作业依ai的ai的⾮减序排序;将N2中作业依bi的⾮增序排序。

5、对于流⽔作业⾼度问题,必存在⼀个最优调度π,使得作业π(i)和π(i+1)满⾜Johnson不等式min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}。

6、最优⼆叉搜索树即是最⼩平均查找长度的⼆叉搜索树。

⼆、综合题(50分)1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最⼤⼦段和为∑ak(2<=k<=4)=20(5分)2、由流⽔作业调度问题的最优⼦结构性质可知,T(N,0)=min{ai+T(N-{i},bi)}(1=3、最⼤⼦段和问题的简单算法(10分)int maxsum(int n,int *a,int & bestj){Int sum=0;for (int i=1;i<=n;i++)for (int j=i;j<=n;j++)int thissum=0;for(int k=i;k<=j;k++)this sum+=a[k];if(thissum>sum){sum=thissum;besti=i;bestj=j;}}return sum;}4、设计最优⼆叉搜索树问题的动态规划算法OptimalBinarysearchTree? (15分)Void OptimalBinarysearchTree(int a,int n,int * * m, int * * w){for(int i=0;i<=n;i++) {w[i+1][i]=a[i]; m[i+1][i]= 0;}for(int r=0;rfor(int i=1;i<=n-r;i++){int j=i+r;w[i][j]=w[i][j-1]+a[j]+b[j];m[i][j]= m[i+1][j];s[i][j]=i;for(int k=i+1;k<=j;k++){int t=m[i][k-1]+m[k+1][j];if(t}m[i][j]=t; s[i][j]=k;}}5、设n=4, (a1,a2,a3,a4)=(3,4,8,10), (b1,b2,b3,b4)=(6,2,9,15) ⽤两种⽅法求4个作业的最优调度⽅案并计算其最优值?(15分)法⼀:min(ai,bj)<=min(aj,bi)因为min(a1,b2)<=min(a2,b1)所以1→2 (先1后2)由min(a1,b3)<=min(a3,b1)得1→3 (先1后3)同理可得:最后为1→3→4→2法⼆:johnson算法思想N1={1,3,4} N2={2}N11={1,3,4} N12={2}所以N11→N12得:1→3→4→2三、简答题(30分)1、将所给定序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出这两段的最⼤⼦段和,则a[1:n]的最⼤⼦段和有哪三种情形?(10分)答:(1)a[1:n]的最⼤⼦段和与a[1:n/2]的最⼤⼦段和相同。

算法设计与分析习题与实验题(12.18)

算法设计与分析习题与实验题(12.18)

《算法设计与分析》习题第一章引论习题1-1 写一个通用方法用于判定给定数组是否已排好序。

解答:Algorithm compare(a,n)BeginJ=1;While (j<n and a[j]<=a[j+1]) do j=j+1;If j=n then return trueElseWhile (j<n and a[j]>=a[j+1]) do j=j+1;If j=n then return true else return false end ifEnd ifend习题1-2 写一个算法交换两个变量的值不使用第三个变量。

解答:x=x+y; y=x-y; x=x-y;习题1-3 已知m,n为自然数,其上限为k(由键盘输入,1<=k<=109),找出满足条件(n2-mn-m2)2=1 且使n2+m2达到最大的m、n。

解答:m:=k; flag:=0;repeatn:=m;repeatl:=n*n-m*n-m*n;if (l*l=1) then flag:=1 else n:=n-1;until (flag=1) or (n=0)if n=0 then m:=m-1until (flag=1) or (m=0);第二章基础知识习题2-1 求下列函数的渐进表达式:3n 2+10n ; n 2/10+2n ; 21+1/n ; log n 3; 10 log3n 。

解答: 3n 2+10n=O (n 2), n 2/10+2n =O (2n ), 21+1/n=O (1), log n 3=O (log n ),10 log3n =O (n )。

习题2-2 说明O (1)和 O (2)的区别。

习题2-3 照渐进阶从低到高的顺序排列以下表达式:!n ,3/22,2,20,3,log ,4n n n n n 。

解答:照渐进阶从低到高的顺序为:!n 、 3n、 24n 、23n 、20n 、log n 、2习题2-4(1) 假设某算法在输入规模为n 时的计算时间为n n T 23)(⨯=。

一年级数学过河练习题

一年级数学过河练习题

一年级数学过河练习题过河是一年级数学中常见的练习题,通过解决这类题目,学生们可以巩固对数学概念的理解以及运算技巧的掌握。

本文将以一年级数学过河练习题为题材,通过实际例子来说明解决这类题目的方法和思路。

假设有三只青蛙 A、B、C,它们需要一起过河。

这个河宽度为 10 米,河中间有一块石头作为起点(编号为 0),对岸有一块安全地点(编号为 10)作为终点。

假设每只青蛙每次跳跃都能恰好跳过 1 米或2 米的距离,且它们不能回头跳。

现在问题来了,我们需要找出一种最短的跳跃方案,使得这三只青蛙能够顺利过河。

为了解决这个问题,我们可以使用动态规划的思想。

首先,我们设立一个长度为 11 的一维数组 dp,其中 dp[i] 表示从起点跳到位置 i 所需要的最短跳跃次数。

初始化数组 dp 的值为一个较大的数,假设为 10000(可以根据实际情况调整)。

然后,我们将起点位置 dp[0] 的值设为 0,表示从起点跳到起点不需要任何跳跃。

接下来,我们从位置 1 开始遍历数组 dp,根据题目要求,每只青蛙每次只能跳 1 米或 2 米的距离,所以我们需要考虑位置 i 能否通过从前两个位置跳跃而来。

即 dp[i] = min(dp[i-1], dp[i-2]) + 1。

最后,我们得到了数组 dp 的最终结果,dp[10] 即为从起点跳到终点所需要的最短跳跃次数。

针对本题的具体情境,我们可以通过填表的方式来解决。

表格如下所示:| 位置 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |10 ||----------|---|---|---|---|---|---|---|---|---|---|---|| 跳跃次数 | 0| 1| 1| 2| 2| 3| 3| 4| 4| 5| 5|通过观察表格,我们可以发现跳到位置 i 的最短跳跃次数与位置 i-1 和 i-2 的最短跳跃次数有关,符合动态规划的思想。

算法复习题(精炼版)

算法复习题(精炼版)

填空题动态规划算法的基本要素为:最优子结构性质与重叠子问题性质1)算法分析中,记号O表示渐进上界,记号Ω表示渐进下界,记号Θ表示紧渐进界。

2)回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。

3)分支限界法在问题的解空间树中,按广度优先策略,从根结点出发搜索解空间树。

所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到)。

所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。

回溯法是指(具有限界函数的深度优先生成法)。

回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。

4)二分搜索算法是利用分治策略实现的算法。

5)衡量一个算法好坏的标准是时间复杂度低6)最长公共子序列算法利用的算法是动态规划法7)Strassen矩阵乘法是利用分治策略实现的算法8)回溯法搜索状态空间树是按照深度优先遍历的顺序。

9)算法中通常以自底向下的方式求解最优解的是动态规划法10)背包问题的贪心算法所需的计算时间为O(nlogn)11)0-1背包问题的回溯算法所需的计算时间为O(n2n)12)用动态规划算法解决最大字段和问题,其时间复杂性为n13)一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_有穷性,确定性,可行性,输入,输出。

1.算法的复杂性有时间复杂性和空间复杂性之分。

2、程序是算法用某种程序设计语言的具体实现。

3、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。

4.矩阵连乘问题的算法可由动态规划设计实现。

6、算法是指解决问题的一种方法或一个过程。

7、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。

8、问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。

9、以深度优先方式系统搜索问题解的算法称为回溯法。

10、数值概率算法常用于数值问题的求解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

动态规划专题分类视图 数轴动规题: ..................... 1 较复杂的数轴动规 ................. 4 线性动规 ......................... 6 区域动规: ...................... 13 未知的动规: .................... 18

数轴动规题:

题1.2001年普及组第4题--装箱问题 【问题描述】有一个箱子容量为V(正整数,0≤V≤20000),同时有n个物品(0体积(正整数)。要求从n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 【输入格式】输入文件box.in有若干行。第一行:一个整数,表示箱子容量V; 第二行:一个整数,表示物品个数n;接下来n行,分别表示这n个物品的各自体积。 【输出格式】 输出文件box.out只有一行数据,该行只有一个数,表示最小的箱子剩余空间。 【输入样例】 24 6 8 3 12 7 9 7 【输出样例】 0

题2.1996年提高组第4题--砝码秤重 __数据加强版 【问题描述】设有n种砝码,第k种砝码有Ck个,每个重量均为Wk,求:用这些砝码能秤出的不同重量的个数,但不包括一个砝码也不用的情况。 【输入格式】输入文件weight.in的第一行只有一个数n,表示不同的砝码的种类数. 第2行至第n+1行,每行有两个整数.第k+1行的两个数分别表示第k种砝码的个数和重量. 【输出格式】输出文件weight.out中只有一行数据:Total=N。表示用这些砝码能秤出的不同重量数。 【输入样例】 2 2 2 2 3 【输出样例】 Total=8 【样例说明】 重量2,3,4,5,6,7,8,10都能秤得 【数据限制】 对于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) 【输出】输出一行,为修好四件衣服所要的最短时间。 【样例输入】 1 2 1 3 5 4 3 6 2 4 3 【样例输出】 20

题5.光光的作业 homework.pas/homework.exe 【问题描述】光光上了高中,科目增多了。在长假里,光光的老师们都非常严厉,都给他布置了一定量的作业。 假期里,光光一共有的时间是k小时。在长假前,老师们一共给光光布置了n份作业,第i份作业需 要的时间是ti小时。但是由于老师们互相不商量,因此光光有可能不能完成老师的作业。当不能完成老师的作业时,光光就事后去向老师说明,然后被老师批评一顿了事。对于一件作业,只有2种情况:完成或者不完成(快要完成也算不完成)。如果没完成,受到批评是天经地义的。但是,不同的作业对于光光来说,批评的力度是不同的。第i件作业如果没完成,就要受到pi个单位的批评。多次这样之后,光光想要在长假前就知道他至少会受到多少个单位的批评。你能帮助他吗? 【输入】输入文件homework.in包含以下内容:第一行只有一个数字k,表示光光一共有的时间数;第二行只有一个数字n,表示作业数;接下来n行,每行两个数字,分别是ti和pi,两个数字之间用一个空格分开。 【输出】输出文件homework.out只包含一行,该行只有一个数字,代表了光光最少受到的批评。 【样例输入】 5 3 2 6 1 3 4 7 【样例输出】 6 【数据规模约定】 100%的数据中,k≤100000,ti≤10000,pi≤10000; 30%的数据中,n≤20; 100%的数据中,n≤500;

题7.打包[pack.pas/pack.c/pack.cpp]2006年OIBH 新年赛 【问题描述】你现在拿到了许多的礼物,你要把这些礼物放进袋子里。你只有一个最多装下V 体积物品的袋子,你不能全部放进去。你也拿不动那么重的东西。你估计你能拿的最大重量为 G。现在你了解了每一个物品的完美值、重量和体积,你当然想让袋子中装的物品的完美值总和最大,你又得计划一下了。 【输入】 第一行:G 和 V 表示最大重量和体积。 第二行:N 表示拿到 N 件礼物。 第三到N+2行:每行3个数 Ti Gi Vi 表示各礼物的完美值、重量和体积 【输出】 输出共一个数,表示可能获得的最大完美值。 【输入输出样例】 输入(pack.in): 6 5 4 10 2 2 20 3 2 40 4 3 30 3 3 输出(pack.out): 50 【数据范围】 对于20%的数据 N,V,G,Ti,Vi,Gi≤10 对于50%的数据 N,V,G,Ti,Vi,Gi≤100 对于80%的数据 N,V,G,Ti,Vi,Gi≤300 80%到100%的数据是N,V,G,Ti,Vi,Gi≤380 的离散随机数据。 较复杂的数轴动规 题6.挤牛奶-同济ACM第1132题 Problem 小卡卡终于帮农夫John找到了走丢的那一头奶牛,John为了感谢小卡卡,不仅告诉了他在 Pascal山脉上可能存在Pascal圣地最大的宝藏,还说要请小卡卡喝牛奶。可是农夫John发现他家里所储藏的牛奶已经喝光了,所以要临时给奶牛挤奶。小卡卡实在是太好心了,说要帮农夫John一起挤牛奶。John答应了,他把他的n头奶牛中的n/2头(n是个偶数)分给小卡卡挤,他自己挤剩下的n/2头奶牛。但是每一头奶牛都有不同的产奶量,农夫John为了让小卡卡减轻负担,他希望他们两个所挤的牛奶的总量之差最小。小卡卡得知了每头奶牛的产奶情况之后很快就解决了这个问题。 Input 测试数据第一行一个整数n,n为偶数且小于100。表示有n头奶牛。 第二行n个整数分别给出每头奶牛的产奶量(产奶量的总和不超过2000)。 Output 输出小卡卡和农夫所挤的牛奶量的最小差值。 Sample Input 6 7 9 2 6 4 2 Sample Output 0

题8.一般性的最少硬币组成问题 coinYB.pas/coinYB.exe 从n种币值为a[1..n]的硬币中,任选几个硬币组成价值为V的一堆货币,问最少需要几个硬币?其中每种硬币的数量没有限制。1<=n<=100,1<=v<=100000,1<=a[i]<=100000 输入文件coinYB.in中有两行:第一行有两个数v和n;第二行有n个以空格分隔的数,表示n个币值. 输出文件coinYB.out中只有一行,该行只有一个数,表示所需的最少硬币数, 如果无论如何选取硬币,均不能得到币值v,则输出0.

题9.多个公司间的机器分配问题 已知第j个公司使用k台机器时,能得到的利润为a[j,k],问如何将m台机器在n个公司中分配,才能获得最大利润?要求输出能获得的最大利润及方案.将3台机器分配给2个公司能获得的盈利情况如下: 公司号\机器数 1 2 3 1 2 3 4 2 1 4 5 最大盈利为6,方案为公司2使用2台,公司1使用1台. 题10.2001年浙江省队选拔---积木城堡castle.pas(castle.exe) 小XC发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不易倒。所以他在垒城堡的时候总是遵循这样的规则。小XC想把自己垒的城堡送给幼儿园里同学们,这样可以增加他的好感度。为了公平起见,他决定把送给每个同学一样高的城堡,这样可以避免同学们为了获得更漂亮的城堡而引起争执。可是他发现自己在垒城堡的时候并没有预先考虑到这一点。所以他现在要改造城堡。由于他没有多余的积木了,他灵机一动,想出了一个巧妙的改造方案。他决定从每一个城堡中挪去一些积木,使得最终每座城堡都一样高。为了使他的城堡更雄伟,他觉得应该使最后的城堡都尽可能的高。 任务:请你帮助小XC编一个程序,根据他垒的所有城堡的信息,决定应该移去哪些积木才能获得最佳的效果。 输入文件castle.in 第一行是一个整数N(N<=100),表示一共有几座城堡。 以下N行每行是一系列非负整数,用一个空格分隔,按从下往上的顺序依次给出一座城堡中所有积木的棱长。用-1结束。一座城堡中的积木不超过100块,每块积木的棱长不超过100。 输出文件castle.out 一个整数,表示最后城堡的最大可能的高度。如果找不到合适的方案,则输出0。 输入样例 2 2 1 –1 3 2 1 –1 输出样例 3

题11.生物基元问题 一个生物体的结构可以用“基元”的序列表示,一个“基元"用一些英文字符串表示。对于一个基元集合P,可以将字符串S看作由n个基元P1,P2,…,Pn依次连接而成的。问题是给定一个字符串S和一个基元集合P,使S的前缀可由P中的基元组成。求这个前缀的最大长度。基元的长度最大为20,字符中的长度最大为500000.例如基元集合为{A,AB,BBC,CA },字符串为ABACABBCAACCB,则最大长度为10,其具体组成为

ABACABBCAA 22 144333 11

相关文档
最新文档