文章标题
2016-06-21 14:30
288 查看
广度优先搜索练习之神奇的电梯
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
有一座已知层数为n的高楼,这座高楼的特殊之处在于只能靠电梯去上下楼,所以要去到某一层要非常耽误时间,然而更悲哀的是,这座高楼的电梯是限号的,小鑫最开始的时候在1层,他想去第x层,问题是他最起码要经过多少层(包含第x层)才能到达第x层。
输入
多组输入。
第一行是三个正整数n,m,q。分别代表楼的总层数,给定的m条信息和q次查询。
接下来的m行,每行的第一个整数pos代表这是第pos层的电梯,第二个数代表从这一层可以去的楼层总共有num个,之后的num个数字代表从第pos层代表可以去的楼层。
最后的q行,每行一个整数代表小鑫想去的楼层号码。
1<=m,pos,num<=n<=200
1<=q<=20
输出
对于每次询问输出一个整数,占一行。代表如果要去某个楼层最少要经过多少层,如果到不了的话就输出-1。
示例输入
10 4 3
1 2 6 7
3 4 4 6 8 10
5 2 2 3
7 3 10 5 6
4
5
9
示例输出
5
3
-1
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
有一座已知层数为n的高楼,这座高楼的特殊之处在于只能靠电梯去上下楼,所以要去到某一层要非常耽误时间,然而更悲哀的是,这座高楼的电梯是限号的,小鑫最开始的时候在1层,他想去第x层,问题是他最起码要经过多少层(包含第x层)才能到达第x层。
输入
多组输入。
第一行是三个正整数n,m,q。分别代表楼的总层数,给定的m条信息和q次查询。
接下来的m行,每行的第一个整数pos代表这是第pos层的电梯,第二个数代表从这一层可以去的楼层总共有num个,之后的num个数字代表从第pos层代表可以去的楼层。
最后的q行,每行一个整数代表小鑫想去的楼层号码。
1<=m,pos,num<=n<=200
1<=q<=20
输出
对于每次询问输出一个整数,占一行。代表如果要去某个楼层最少要经过多少层,如果到不了的话就输出-1。
示例输入
10 4 3
1 2 6 7
3 4 4 6 8 10
5 2 2 3
7 3 10 5 6
4
5
9
示例输出
5
3
-1
#include<stdio.h> #include<string.h> struct node { int x,y; int ans; }q[220]; int map[220][220]; int book[220]; int m,n,k; void bfs( int x,int y) { memset(book,0,sizeof(book)); int head = 0,tail = 0,i; struct node t,f; t.x=x; t.ans = 1; q[tail++]=t; book[t.x] = 1; while(head < tail) { t = q[head++]; if(t.x == y) { printf("%d\n",t.ans); return; } for( i =1; i <= n; i++) { f.x = i; if(!book[f.x]&&map[t.x][f.x]==1) { f.ans=t.ans+1; q[tail++] = f; book[f.x]=1; } } } printf("-1\n"); return; } int main() { while(~scanf("%d%d%d",&n,&m,&k)) { memset(map,0,sizeof(map)); memset(book,0,sizeof(book)); while(m--) { int a,b,c; scanf("%d%d",&a,&b); while(b--) { scanf("%d",&c); map[a][c]=1; } } while(k--) { int t; scanf("%d",&t); bfs(1,t); } } }
相关文章推荐
- 查看监听端口的进程
- String... 、?、T、K、V含义
- Swift - 访问通讯录联系人(使用系统提供的通讯录交互界面)
- C++ 高级数据类型(二)—— 字符序列
- Linux中tty框架与uart框架之间的调用关系剖析【转】
- Java遍历List的时候删除item
- ASP.NET Core 中文文档 第二章 指南(4.9)添加验证
- 三代测序文章
- 第一篇初识bootstrap
- c++实践参考:数组类模板
- Android 为PopupWindow设置动画效果
- Struts2学习(三)—OGNL
- 互斥量、条件变量与pthread_cond_wait()函数的使用
- Android多种多线程机制使用说明(个人总结)
- Python 连接Sql Server数据库 MSSql
- js中判断是否字符串是否含有中文
- C++ 高级数据类型(一)—— 数组
- Intent Service 和Service的区别
- android material desigen
- mysql分组取每组前几条记录