[ACM实验四]ACM程序设计基础(2)(全排列与迷宫最短路径)
实验项目:ACM程序设计基础(2)
实验目的:掌握C++程序设计基础。
实验要求:使用VC++6.0实现实验要求。
实验内容:
1.上地理课时,四个学生回答我国四大淡水湖的大小时说:
甲:洞庭湖最大,洪泽湖最小,鄱阳湖第三。{1, 4, 3, 2}
乙:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。{2, 3, 4, 1}
丙:鄱阳湖最小,洞庭湖第三。{0, 0, 1, 3}
丁:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。{3, 2, 1, 4}
对于每个湖的大小,每人仅答对了一个。请判断四个湖的大小。请用递归算法编写程序实现。
为每个湖编号(1.洞庭 2.洪泽 3.潘阳 4.太湖),则每位同学所说的顺序都可作为一个4位的数组,如上粗体所示。只要找出所有情况中每位同学都只对一个的情况,即是本题的解。代码如下:
2.以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论,如果有通道,请输出最短路径的通道。例如:
9 8
1 1 9 8
0 0 1 0 0 0 1 0
0 0 1 0 0 0 0 0
0 0 0 0 1 1 1 0
0 1 1 1 0 0 1 0
0 0 0 1 0 0 0 0
0 1 0 0 0 1 0 1
0 1 1 1 1 0 0 1
1 1 0 0 0 0 0 1
1 1 0 0 0 0 0 0
实现图案输出: