题目
算法设计:对于给定的n个正整数,设计一个优先队列式分支限界法,用最少的无优先级运算次数产生整数m.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m.第2行是给定的用于运算的n个正整数.
结果输出:将计算的产生整数m的最少无优先级运算次数以及最优无优先级运算表达式输出到文件output.txt.
第1题
算法设计:对于给定的n个正整数,设计一个算法,用最少的无优先级运算次数产生整数m.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m.第2行是给定的用于运算的n个正整数.
结果输出:将计算的产生整数m的最少无优先级运算次数以及最优无优先级运算表达式输出到文件output.txt.
第2题
问题描述:给定k个正整数,用算术运算符+、-、*./将这k个正整数连接起来,使最终的得数恰为m.
算法设计:对于给定的k个正整数,给出计算m的算术表达式.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数k和m,表示给定k个正整数,且最终的得数恰为m.接下来的一行中有k个正整数.
结果输出:将计算m的算术表达式输出到文件output.txt.如果有多个满足要求的表达式,只要输出一组,每步算式用分号隔开.如果无法得到m,则输出“NoSolution!”.
第3题
对于任何开线段z,设其端点坐标为(x0,y0)和(x1,y1),则开线段z的长度定义为
算法设计:对于给定的开线段集合I和正整数k.计算开线段集合I的最长k可重线段集的长度.
数据输入:由文件input.txt提供输入数据.文件的第1行有2个正整数n和k,分别表示开线段的个数和开线段的可重叠数.接下来的n行,每行有4个整数,表示开线段的2个端点坐标.
结果输出:将计算的最长k可重线段集的长度输出到文件output.txt.
第4题
其中,集合{{1,2,3,4)}由1个子集组成:集合{{1{,2},{3,4}},{{1,3},{2,4},{{1,4},{2,3}},{{1,2,3},{4}},{{1,2,4},{3}},{{1,3,4},{2}},{2,3,4},{1}}由2个子集组成:集合{{1,2},{3},{4}},({1,3},{2},{4},{{1,4},{2},{3}},{{2,3},{1},{4)},{{2.4},{1},{3}},{{3,4},{1},{2}}由3个子集组成:集合{{1},{2},{3},{4}}由4个子集组成.
算法设计;给定正整数n和m,计算出n个元素的集合{1,2,...,n}可以划分为多少个不同的由m个非空子集组成的集合.
数据输入:由文件input.txt提供输入数据.文件的第1行是元素个数n和非空子集数m.
结果输出:将计算出的不同的由m个非空子集组成的集合数输出到文件output.txt.
第5题
问题描述:设是n个互不相同的符号组成的符号集.
1≤i≤k}是Σ中字符组成的长度为k的字符串至体.
是Lk的1个无分隔符字典是指对任意
和
.
无分隔符字典问题要求对给定的n和Σ及正整数k,计算Lk的最大无分隔符字典.
算法设计:设计一个算法,对于给定的正整数n和k,计算Lk的最大无分隔符字典.
数据输入:由文件input.txt给出输入数据.文件第1行有2个正整数n和k.
结果输出:将计算的Lk的最大无分隔符字典的元素个数输出到文件output.txt.
第6题
问题描述;设S是正整数集合.S是一个无和集,当且仅当蕴含
.对于任意正整数k,如果可将{1.2,...,k}划分为n个无和子集
,则称正整数k是n可分的.记F(n)=max{k|k是n可分的}.试设计一个算法,对任意给定的n,计算F(n)的值.
算法设计:对任意给定的n,计算F(n)的值.
数据输入:由文件input.txt给出输入数据.第I行有1个正整数n.
结果输出:将计算的F(n)的值以及{1,2,F(n)}的一个n划分输出到文件output.txt.文件的第1行是F(n)的值.接下来的n行,每行是一个无和子集Si.
第7题
问题描述:具有截止时间和误时惩罚的任务安排问题可描述如下.
(1)给定n个任务的集合S={1,2,...,n};
(2)完成任务i需要ti(1≤i≤n)时间;
(3)任务i的截止时间di(1≤i≤n),明要求任务i在时间di之前结束;
(4)任务i的误时惩罚wi(1≤i≤n),即任务i末在时间di之前结束,将招致wi的惩罚;若按时完成,则无惩罚.
任务安排问题要求确定S的一个时间表(最优时间表)使得总误时惩罚达到最小.
算法设计:对于给定的n个任务,计算总误时惩罚最小的最优时间表.
数据输入:由文件input.txt给出输入数据.第1行是1个正整数n,表示任务数.接下来的n行中,每行有3个正整数a、b、c,表示完成相应任务需要时间a,截止时间为b,误时惩罚值为c.
结果输出:将计算的总误时惩罚输出到文件output.txt.
第8题
算法设计:给定n个整数组成的序列,计算该序列的最优m段分割,使m段子序列的和的最大值达到最小.
数据输入:由文件input.txt提供输入数据.文件的第1行中有2个正整数n和m.正整数n是序列的长度:正整数m是分割的段数.接下来的一行中有n个整数.
结果输出:将计算结果输出到文件output.txt.文件的第1行中的数是计算出的m段子序列的和的最大值的最小值.
第9题
0-1背包问题描述如下;给定n种物品和一个背包.物品i的重量是wi,其价值为vi背包的容量为C.应如何选择装入背包的物品,使装入背包中物品的总价值最大?
在选择装入肯包的物品时,对每种物品i只有2种选择,即装入背包或不装入背包.不能将物品i装入背包多次,也不能只装入部分的物品i.
0-1背包问题形式化描述如下:给定,要求n元0-1向量
,
使得
而且
达到最大.
算法设计:对于给定的n种物品的重量和价值,以及背包的容量,计算可装入背包的最大价值.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和c,n是物品数,c是背包的容量.接下来的1行中有n个正整数,表示物品的价值.第3行中有n个正整数,表示物品的重量.
结果输出:将计算的装入背包物品的最大价值和最优装入方案输出到文件output.txt
第10题
问题描述:子集和问题的一个实例为.其中,
是一个正整数的集合,c是一个正整数.子集和问题判定是否存在S的一个子集S1,使得
.试设计一个解子集和问题的回溯法.
算法设计:对于给定的正整数的集合和正整数c,计算S的一个了集S1,使得
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数n和c,n表示S的大小,c是子集和的目标值.接下来的1行中,有n个正整数,表示集合S中的元素.
结果输出:将子集和问题的解输出到文件output.txt.当问题无解时,输出“NoSolution!".
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!