算法设计与分析题目-2

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

第三章动态规划
1.问题描述:小明和小红一起分若干张邮票,不同的邮票可能有不同的分值。

他们想把这些邮票分成两份,并且要求这两份的分值总和相差最小。

试问他们应该如何分配?
算法设计:对于给定的n个数分成两堆,要求这两堆的差值最小。

数据输入:第一行输入一个正整数n(n<=1000),表示邮票的张数;第二行输入n 个正整数,分别表示每张邮票的分值。

数据输出:输出两堆邮票分值的差的最小值。

输入样例:
3
2 1 5
输出样例:
2
2.问题描述:小明在玩一款游戏,任务是杀怪升级。

小明玩的时间久了产生了厌恶感,但是还差最后一级。

现在的问题是,小明还需要n经验值升级,但是他还有m的忍耐度。

每当小明杀掉一个怪时会获得相应的经验并减掉相应的耐久度。

当耐久度为0或者0以下时,小明就不在玩此游戏了。

小明还说他最多只杀s只怪。

请问他能升最后一级么?
算法设计:给出升级需要的经验n,耐久度m,怪的种数k,最多的杀怪数s,以及杀掉每种怪获得的经验数和减掉的耐久度(假设每种怪有无数个)。

请给出升
级完成后还能保留的最大耐久度。

数据输入:第一行依次输入升级需要的经验n,耐久度m,怪的种数k,最多的杀怪数s;接下来的k行,每行依次输入杀掉一只这种怪获得的经验值和会减掉的耐久度。

数据输出:升级完成后保留的最大耐久度,如果不能完成升级则输出-1。

输入样例:
9 10 2 10
1 1
2 2
输出样例:
1
3.问题描述:某研究中心开发出来一种导弹拦截系统,但是该系统存在重大问题。

该拦截系统第一发拦截导弹能够拦截任意高度的炮弹,但是以后的任意一发不能超过或者等于前一发的拦截导弹高度。

算法设计:在已知某列导弹序列的高度,请计算出该系统最多能够拦截的导弹数量。

数据输入:第一行输入侦察到的所有导弹数;第二行依次为导弹的飞行高度。

数据输出:输出最多能拦截的导弹数目。

输入样例:
8
389 200 145 360 289 186 165 85
输出样例:
6
第五章回溯法
1.问题描述:给定一组包含数字0-9的字符串,每个数字都能映射到如下图所示的字符列表中。

现在有一串数字列表,请给出所有可能的字母列表。

算法设计:由已给出的数字字符串,按照图中的映射关系,给出所有可能的字符列表。

数据输入:由0-9组成的字符串。

数据输出:所有可能的字符映射序列。

输入样例:
2 3
输出样例:
ad ae af bd be bf cd ce cf
2.问题描述:现给定一组数字集合S,和一个目标数字T,请给出S中数字和能够组成T的所有可能组合(S中的数字有无限个)。

例如S={2,3,6,7},T=7。

其可能的组合为(7)和(2,2,3),共有2中组合。

算法设计:由S和T,给出所有可能的组合的个数。

数据输入:第一行输入数字集合S;第二行输入目标数字T。

数据输出:所有可能的组合数。

输入样例:
2 3 5
8
输出样例:
2 2 2 2
2 3 3
3 5
3.问题描述:小明现在有若干不同长度的小木条,现在小明需要使用这些小木条摆成一个正方形(也有可能摆不成),要求用完所有的木条。

算法设计:给出N个不同长度的木条,判断使用这些木条是否能否摆出正方形。

数据输入:N个木条的长度。

数据输出:如果能够摆成正方形则输出1;如果不能摆出正方形则输出0。

输入样例:
4 3 3 2 2 1 1
输出样例:
1
第六章分支限界法
1.问题描述:假设有一个n位的十进制正整数A,现在把A分为b段,则可以得到b个整数。

每一段的整数相乘得到一个数C,称C为A的一个乘积。

算法设计:现给定一个正整数A和一个正整数b,计算A的最大乘积是多少。

数据输入:第一行输入正整数A;第二行输入正整数b。

数据输出:输出A的最大乘积。

输入样例:
2153
2
输出样例:
1113
2.问题描述:Tom最近在寻宝并且找到了一个金矿,在这个金矿中有许多大小不一的金块。

Tom只带了一个容积为V的袋子,请计算出Tom最多能带走多少金块(金块无法切割)。

算法设计:给定Tom袋子的容积以及每个金块的体积,请计算出Tom最多能带走金块的体积。

数据输入:每组输入数据的第一行为两个整数n和v(1<n<=100,1<v<=1000000),分别表示金块的数量以及Tom袋子的容积。

接下来有n行,每行有一个整数,表示金子的体积。

数据输出:输出Tom最多能带走的金块体积。

输入样例:
4 50
25
40
5
30
输出样例:
45
3.问题描述:第三代移动通信技术(3rd-generation,3G)具有很高的传输速率。

当一个无线电基站要传播一片很大的区域时,中转站是用来重新传播信号使得每一个客户端都能够拥有一段很强的信号。

每个中转站必须使用与相邻的中转站不同的频谱。

然而无线电频谱是一种稀有资源,对于给定的一个中转站网络,我们需要使用的频谱数量最小。

算法设计:给定一个中转站网络,请你计算出最少需要的频谱数量。

数据输入:第一行为一个整数n(1<=n<=26),表示中转站的数量,中转站的名字由一个大写字母组成(A-Z)。

以下n行,每行表示一个中转站的网络连接关系。

A:BCD
表示A中转站分别与B、C、D中转站相邻。

A:
表示A中转没有其它相邻的中转站。

相邻是一种对称关系,即A相邻于B,那么B也相邻于A。

数据输出:输出最少需要的频谱数量。

输入样例:
4
A:BCD
B:ACD
C:ABD
D:ABC
输出样例:
4。

相关文档
最新文档