试设计一个算法,随机地产生范围在1~n的m个随机整数,且要求这m个随机整数互不相同.
算法设计:对于给定的n个正整数,设计一个算法,用最少的无优先级运算次数产生整数m.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m.第2行是给定的用于运算的n个正整数.
结果输出:将计算的产生整数m的最少无优先级运算次数以及最优无优先级运算表达式输出到文件output.txt.
算法设计:对于给定的方格棋盘,按照取数要求找出总和最大的数.
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数m和n,分别表示棋盘的行数和列数.接下来的m行,每行有n个正整数,表示棋盘方格中的数.
结果输出:将取数的最大总和输出到文件output.txt.
A、采用贪心算法,每一个加油站都去加油,使得油箱出发的时候都是满的,即使加油站隔的很远,比如大于n公里,也能够开到下一个加油站。
B、采用排除法,只要剩余的油不足以行驶到下一个加油站,说明继续行驶做不到,不能把本加油站排除了,因此需要加油
C、采用贪心算法:最远距离优先。也就是满足汽车有油的情况下行驶尽可能远的距离。 首先保证每2个加油站之间的距离<=n,否则汽车没有到下一个加油站就没有油了,不能完成旅游。 然后计算汽车从出发地开始的行驶的累计路程,只要累计路程小于n,则继续开到下一个加油站,一旦行驶里程>n,则在上1个加油站必须加满油,并加油次数加1次。然后以上一个加油站为其实出发地开始用同样的方法进行累计路程,直到到达目的地。
D、采用穷举法,把每一种加油方法都枚举出来,看是否能够行驶到下一个加油站,不能则排除,否则就是一个可行解。
算法设计:对于给定的m和n,计算出不同的宝石排列方案数.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数m和n(0<m≤n<9).
结果输出:将计算的宝石排列方案数输出到文件output.txt.
试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少.
为了进行比较,还需要确定合并这个序列的最运合并顺序,使所需的总比较次数最多.
算法设计:对于给定的k个待合并序列,计算最多比较次数和最少比较次数合并方案.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数k,表示有k个待合并序列.接下来的1行有k个正整数,表示k个待合并序列的长度.
结果输出:将计算的最多比较次数和最少比较次数输出到文件output.txt.
①从最西端城市出发,单向从西向东途经若干城市到达最东端城市,再单向从东向西飞回起点(可途经若干城市).
②除起点城市外,任何城市只能访问1次.
算法设计:对于给定的航空图,试设计一个算法,找出一条满足要求的最佳航空旅行路线.
数据输入:由文件input.txt提供输入数据.文件第1行有两个正整数N和V,N表示城市数(N<100),V表示直飞航线数.接下来的N行中的每行是一个城市名,可乘飞机访问这些城市.城市名出现的顺序是从西向东.也就是说,设i、j是城市表列中城市出现的顺序,当i>j时,表示城市i在城市j的东边,而且不会有两个城市在同一条经线上.城市名是一个长度不超过15的字符串,串中的字符可以是字母或阿拉伯数字,如AGR34或BEL4.
再接下来的V行中,每行有2个城市名,中间用空格隔开,如city1city2表示city1到city2有一条直通航线,从city2到city1也有一条直通航线.
结果输出:将最佳航空旅行路线输出到文件output.txt.文件第1行是旅行路线中所访问的城市总数M.接下来的M+1行是旅行路线的城市名,每行写一个城市名.首先是起点城市名,然后按访问顺序列出其他城市名.注意,最后一行(终点城市)的城市名必然是起点城市名.如果问题无解,则输出“NoSolution!”.
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!