试编写算法,将一个用循环链表表示的稀疏多项式分解成两个多项式,使这两个多项式中各自仅含奇次项或偶次项,并要求利用原链表中的结点空间构成这两个链表。
居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2177年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球.现有n个太空站位于地球与月球之间,且有m艘公共交通太空船在其间来回穿梭.每个太空站可容纳无限多的人,而每艘太空船i只可容纳H[i]个人.每艘太空船将周期性地停靠一系列的太空站,例如,(1,3,4)表示该太空船将周期性地停靠太空站134134134...每艘太空船从一个太空站驶往任一太空站耗时均为1.人们只能在太空船停靠太空站(或月球、地球)时上下船.初始时,所有人全在地球上,太空船全在初始站.试设计一个算法,找出让所有人尽快全部转移到月球上的运输方案.
算法设计:对于给定的太空船的信息,找到让所有人尽快全部转移到月球上的运输方案.
数据输入:由文件input.txt提供输入数据.文件第1行有3个正整数n(太空站个数)、m(太空船个数)和k(需要运送的地球上的人数).其中,1≤m≤13,1≤n≤20,1≤k≤50.
接下来的m行给出太空船的信息.第i+1行说明太空船pi.第1个数表示pi可容纳的人数Hpi;第2个数表示pi一个周期停靠的太空站个数r(1≤r≤n+2);随后r个数是停靠的太空站的编号Si1,Si2,...Sir,地球用0表示,月球用-1表示.时刻0时,所有太空船都在初始站,然后开始运行.在时刻1、2、3、...等正点时刻各艘太空船停靠相应的太空站.人只有在0、1、2...等正点时刻才能上、下太空船.
结果输出:将全部人员安全转移所需的时间输出到文件output.txt.如果问题无解,则输出0.
阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。
【说明】
在一个矩阵中,如果其零元素的个数远远多于其非零元素的个数时,称这样的矩阵为稀疏矩阵。稀疏矩阵通常采用三元组数组表示。每个非零元素用一个三元组来表示,即非零元素的行号、列号和它的值。然后按某种顺序将全部非零元素的三元组存于一个数组中。例如,对于以下二维数组:
int x[3][4]={{1,0,0,0},{0,5,0,0),{0,0,7,2}};
可用以下数组a来表示:
int a[][3]={{3,4,4},{0,0,1},{1,1,5),{2,2,7},{2,3,2}};
其中三元数组a的第1行元素的值分别存储稀疏矩阵×的行数、列数和非零元素的个数。
下面的流程图描述了稀疏矩阵转换的过程。
【流程图】
以下关于Python的说法中正确的是哪一项()。
A.Python中函数的返回值如果多于1个,则系统默认将它们处理成一个字典
B.递归调用语句不允许出现在循环结构中
C.在Python中,一个算法的递归实现往往可以用循环实现等价表示,但是大多数情况下递归表达的效率要更高一些
D.可以在函数参数名前面加上星号*,这样用户所有传来的参数都被收集起来然后使用,星号在这里的作用是收集其余的位置参数,这样就实现了变长参数
算法设计:对于给定的方格棋盘,按照取数要求找出总和最大的数.
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数m和n,分别表示棋盘的行数和列数.接下来的m行,每行有n个正整数,表示棋盘方格中的数.
结果输出:将取数的最大总和输出到文件output.txt.
规则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上.
算法设计:对于给定n堆石子,计算合并成一堆的最小得分和最大得分.
数据输入:由文件input.txt提供输入数据.文件的第1行是正整数n(1≤n≤100),表示有n堆石子.第2行有n个数,分别表示每堆石子的个数.
结果输出:将计算结果输出到文件outpur.txt.文件第1行的数是最小得分,第2行中的数是最大得分.
请编写两个函数int sum_of_powers(int k,int n),powers(int m,int n),求1~6的k次方的和,sum_of_powers中参数k和n分别表示k次方和所求数列中最大的一个自然数,最后返回所求值,powers中参数m和n分别表示m为底数n为指数,最后返回所求值。要求使用for循环和函数嵌套(int sum_of_powers中调用powers)实现算法。输出结果如下:
sum of 4 powers of intergers from 1 to 6=2275
注意:部分源程序已存在文件test25_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数sum_of_powers和powers的花括号中填写若干语句。
文件test25_2.cpp的内容如下:
include<iostream.h>
const int k(4);
const int n(6);
int sum_of_powers(int k,int n),powers(int m,int n);
void main()
{
cout<<"sum of "<<k<<" powers Of intergers from 1 to "<<n<<"=";
cout<<sum_of_powers(k,n)<<endl;
}
int sum_of_powers(int k,int n)
{
}
int powers(int m, int n)
{
}
①从最西端城市出发,单向从西向东途经若干城市到达最东端城市,再单向从东向西飞回起点(可途经若干城市).
②除起点城市外,任何城市只能访问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!”.
A.elemHead
B.elemTail
C.elemHead->next和elemHead
D.elemTail->next和elemTail