题目连接地址:
https://cn.vjudge.net/problem/HDU-2181
大致题意:
小伙子要环游世界再回来,现在输入20组数,默认输入 的第n组数据就是第n个城市,该组数据表明了从该城市能到达的下一个城市。再输入y个数字,表示要从该城市环游一周再返回原点。输出:输出所有的旅行路线。
解题思路:
因为要求找出所有的路线,所以要用深度优先搜索。(利用深度优先搜索能遍历所有的情况的特性)。
解释一下题目中的一些用来标记的参数(和数组):
#define MAX 21
表示规模
bool map[MAX][MAX];
地图,第一维表示该节点,第二维表示下一个节点
bool used[MAX];
标记走过的城市
int cas;
环游世界的起点和终点
代码如下:(主要看注释)
#include <stdio.h>
#include <string.h>
#define MAX 21