问题描述:给定n个正整数和4个运算符+、-、*、/,且运算符无优先级,如2+3*5-25.对于任意给定的整数m
算法设计:对于给定的n个正整数,设计一个优先队列式分支限界法,用最少的无优先级运算次数产生整数m.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m.第2行是给定的用于运算的n个正整数.
结果输出:将计算的产生整数m的最少无优先级运算次数以及最优无优先级运算表达式输出到文件output.txt.
算法设计:对于给定的n个正整数,设计一个优先队列式分支限界法,用最少的无优先级运算次数产生整数m.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m.第2行是给定的用于运算的n个正整数.
结果输出:将计算的产生整数m的最少无优先级运算次数以及最优无优先级运算表达式输出到文件output.txt.
第1题
问题描述;设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.
第2题
问题描述:子集和问题的一个实例为.其中,是一个正整数的集合,c是一个正整数.子集和问题判定是否存在S的一个子集S1,使得.试设计一个解子集和问题的回溯法.
算法设计:对于给定的正整数的集合和正整数c,计算S的一个了集S1,使得
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数n和c,n表示S的大小,c是子集和的目标值.接下来的1行中,有n个正整数,表示集合S中的元素.
结果输出:将子集和问题的解输出到文件output.txt.当问题无解时,输出“NoSolution!".
第3题
算法设计:给定n个整数组成的序列,计算该序列的最优m段分割,使m段子序列的和的最大值达到最小.
数据输入:由文件input.txt提供输入数据.文件的第1行中有2个正整数n和m.正整数n是序列的长度:正整数m是分割的段数.接下来的一行中有n个整数.
结果输出:将计算结果输出到文件output.txt.文件的第1行中的数是计算出的m段子序列的和的最大值的最小值.
第4题
算法设计:对于给定的n个实数x1、x2、...、xn,计算它们的最大间隙.
数据输入:输入数据由文件名为input.txt的文本文件提供.文件的第1行有1个正整数n.接下来的1行中有n个实数x1、x2、...、xn
结果输出:将找到的最大间隙输出到文件output.txto
第5题
问题描述:给定一棵树T,树中每个顶点u都有权值w(u),可以是负数.现在要找到树T的一个连通子图使该子图的权值和最大.
算法设计:对于给定的树T,计算树T的最大连通分支.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n,表示树T有n个顶点.树T的顶点编号为1,2,...,n.第2行有n个整数,表示n个顶点的权值.接下来的n-1行中,每行有表示树T的一条边的2个整数u和v,表示顶点u与顶点v相连.
结果输出:将计算出的最大连通分支的权值输出到文件output.txt.
第6题
问题描述:给定两个n×n矩阵A和B,试设计一个判定A和B是否互逆的蒙特卡罗算法(算法的计算时间应为O(n2).
算法设计:设计一个蒙特卡罗算法,对于给定的矩阵A和B,判定其是否互逆.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n,表示矩阵A和B为n×n矩阵.接下来的2n行,每行有n个实数,分别表示矩阵A和B中的元素.
结果输出:将计算结果输出到文件output.txt.若矩阵A和B互逆,则输出“YES",否则输出“NO".
第7题
问题描述:给定一个赋权无向图G=(V,E),每个顶点都有权值w(v).如果,且对任意(u,V)∈E有u∈U或v∈U,就称U为图G的一个顶点覆盖.G的最小权顶点覆盖是指G中所含顶点权之和最小的顶点覆盖.
算法设计:对于给定的无向图G,设计一个优先队列式分支限界法,计算G的最小权顶点覆盖.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m,表示给定的图G有n个顶点和m条边,顶点编号为1,2,...,n.第2行有n个正整数表示n个顶点的权.接下来的m行中,每行有2个正整数u和v,表示图G的一条边(u,v).
结果输出:将计算的最小权顶点覆盖的顶点权值和以及最优解输出到文件output.txt.文件的第1行是最小权顶点覆盖顶点权之和;第2行是最优解xi(1≤i≤n),xi=0表示顶点i不在最小权顶点覆盖中,xi=1表示顶点i在最小权顶点覆盖中.
第8题
问题描述:假设有来自n个不同单位的代表参加一次国际会议.铄个单位的代表数分别为ri(i=1,2,...,n).会议餐厅共有m张餐桌,每张餐桌可容纳ci(i=1,2,...,m)个代表就餐.为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐.试设计一个算法,给出满足要求的代表就餐方案.
算法设计:对于给定的代表数和餐桌数以及餐桌容量,计算满足要求的代表就餐方案.
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数m和n,m表示餐桌数,n表示单位数(1≤m≤150,1≤n≤270).文件第2行有m个正整数,分别表示每个单位的代表数.文件第3行有n个正整数,分别表示每个餐桌的容量.
结果输出:将代表就餐方案输出到文件output.txt如果问题有解,在文件第1行输出1,否则输出0.接下来的m行给出每个单位代表的就餐桌号.如果有多个满足要求的方案,只要输出一个方案.
第9题
问题描述:大于1的正整数n可以分解为例如,当n=12时,有8种不同的分解式:
算法设计:对于给定的正整数n,计算n共有多少种不同的分解式.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n
结果输出:将计算出的不同的分解式数输出到文件output.txt.
第10题
算法设计:设计一个拉斯维加斯算法,对于给定的自然数n(1≤n≤100)计算在n×n个方格组成的棋盘上最少要放置多少个皇后才能控制棋盘上的所有方格,且放置的皇后互不攻击.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n.
结果输出:将计算的最少皇后数及最佳放置方案输出到文件output.txt.文件的第1行是最少皇后数:接下来的1行是皇后的最佳放置方案.
第11题
规则I:每次只能移动1个圆盘:
规则II:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;
规则III:任何时刻都不允许将同色圆盘叠放在一起:
规则IV:在满足移动规则I~III的前提下,可将圆盘移至A、B、C中任一塔座上.
试设计一个算法,用最少的移动次数将塔座A上的n个圆盘移到塔座B上,并仍按同样顺序叠置.
算法设计:对于给定的正整数n,计算最优移动方案.
数据输入:由文件input.txt给出输入数据.第1行是给定的正整数no.
结果输出:将计算出的最优移动方案输出到文件output.txt.文件的每行由一个正整数k
和2个字符c1和c2组成,表示将第k个圆盘从塔座c1移到塔座c2上.