任何一个可计算的算法都可以顺序、分技和()三种基本结构来表达
A.系统
B.结构化
C.多分支
D.循环
A.系统
B.结构化
C.多分支
D.循环
第3题
8行上布放棋子。在每一行中有8个可选择位置,但在任一时刻,棋盘的合法布局都必须满足3个限制条件,即任何两个棋子不得放在棋盘上的同一行、或者同一列、或者同一斜线上。试编写一个递归算法,求解并输出此问题的所有合法布局。(提示:用回溯法。在第n行第j列安放一个棋子时,需要记录在行方向、列方向、正斜线方向、反斜线方向的安放状态,若当前布局合法,可向下一行递归求解,否则可移走这个棋子,恢复安放该棋子前的状态,试探本行的第j+1列)
第8题
①从最西端城市出发,单向从西向东途经若干城市到达最东端城市,再单向从东向西飞回起点(可途经若干城市).
②除起点城市外,任何城市只能访问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!”.