洛谷P1135 奇怪的电梯 BFS例题】的更多相关文章

好,这是一道黄题.几个月前(2017.10.29)的我拿了可怜的20分. 这是当年的蒟蒻代码 #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cstdlib> using namespace std; int n,b,c; ]; int xiuxi(int now,int k) { ) ; ,bb=; if(now ==…
题目:奇怪的电梯 - 洛谷 (luogu.com.cn) 因为此题数据范围较小,有dfs及bfs等多种做法. DFS 比较正常的dfs,注意vis数组一定要回溯,不然会漏情况 例如这个数据 11 1 5 1 5 20 1 20 20 3 20 20 1 7 有无回溯vis数组结果不一样 代码: #include <iostream> using namespace std; typedef long long ll; int n, a, b, minn = 0x7fffffff; int A[…
题目链接:https://www.luogu.org/problemnew/show/P1135 题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层楼 (1≤i≤N) 上有一个数字Ki​(0≤Ki​≤N) .电梯只有四个按钮:开,关,上,下.上下的层数等于当前楼层上的那个数字.当然,如果不能满足要求,相应的按钮就会失灵.例如:3,3,1,2,5 代表了Ki​(K1​=3,K2​=3,…) ,从 1 楼开始.在 1楼,按“上”可以到 4 楼,按“…
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开,关,上,下.上下的层数等于当前楼层上的那个数字.当然,如果不能满足要求,相应的按钮就会失灵.例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始.在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼.那么,从A楼到B楼至少要按几次按钮呢? 输入输出格式 输入格式: 输入文件…
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼 (1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开,关,上,下.上下的层数等于当前楼层上的那个 数字.当然,如果不能满足要求,相应的按钮就会失灵.例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始.在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼.那么,从A楼到B楼至少要 按几次按钮呢? 输入输出格式 输入格式: 输…
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开,关,上,下.上下的层数等于当前楼层上的那个数字.当然,如果不能满足要求,相应的按钮就会失灵.例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始.在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼.那么,从A楼到B楼至少要按几次按钮呢? 输入输出格式 输入格式: 输入文件…
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开,关,上,下.上下的层数等于当前楼层上的那个数字.当然,如果不能满足要求,相应的按钮就会失灵.例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始.在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼.那么,从A楼到B楼至少要按几次按钮呢? 输入输出格式 输入格式: 输入文件…
题目:https://www.luogu.org/problemnew/show/P1135 题意: 一共有n层楼,在第i层可以往上或往下$k_i$层. 问从$a$层到$b$层至少需要多少乘多少次电梯. 思路: bfs 用vis标记当前层是否已访问过,如果是就不再重新入队因为肯定会循环. 要注意判断一下加或减层数时会不会越界. #include<stdio.h> #include<stdlib.h> #include<map> #include<set> #…
这个题我见过!!! 我之前在石油大学的网站上做练习赛,提高了很多,这个题是我第一次在比赛里见到深搜. 当时蒙蔽的一批,现在发现好简单…… 这个题和普通的深搜没什么区别,甚至可以说简单了,因为这个是1维的,别的是二维的(见到老熟人,我快高兴疯了). 我们先来个代码吧,解释什么的写进注释里了: #include<iostream> #include<cstdio> using namespace std; long long a,b,n; long long k[300]; long…
题意:有一\(n\)层高的大楼,每层楼都只能在合法情况下上\(x\)层或者下\(x\)层,问你是否能从\(a\)层楼坐电梯到\(b\)层楼,输出最小步数. 题解:直接dfs搜,\(flo\)表示层数,\(cnt\)表示步数,如果\(flo=b\),维护最小值,然后对这层楼标记已走过,判断是否合法再向上向下搜,然后回溯取消标记. 代码: #include <iostream> #include <cstdio> #include <cstring> #include &l…