题目链接:
这两个题只有输入输出形式不一样。ZOJ的麻烦一点,这里用的ZOJ的输入输出方式
解题报告:
1、输入方式sscanf(line,"%d%d",&a,&b);表示在文本line中提取两个整形数据到a,b中
2、从外星人的角度来看,就是搜索单源最短路径,采用的方式是广搜。
3、删除某个点,从入口进入(0号房间),查看是否可以走到外星人的位置,采用深搜。
4、在删除哪一个点时,用枚举即可。
#include#include #include using namespace std;#define INF 0x3f3f3f3f#define MAXN 105int n,et;///n个房间,外星人所在的房间bool data[MAXN][MAXN]; ///图的邻接矩阵int dis[MAXN]; ///各点到外星人的房间的最短路径长度int used[MAXN];///广度优先搜索,站在外星人的角度看,就是单源最短路径问题///搜索各个房间到外星人最短距离void bfs_path(){ memset(dis,INF,sizeof(dis)); dis[et]=0; queue q; q.push(et); int x; while(!q.empty()) { x=q.front(); ///取队列头结点 q.pop(); for(int i=0;i