首页 > TAG信息列表 > P1135
洛谷 P1135 奇怪的电梯
题目链接 https://www.luogu.com.cn/problem/P1135 这题可以用bfs和dfs两种方法,这里先说一下bfs。 在本题中,相邻状态为当前所在楼层通过按向上或向下按钮所能到达的楼层,每个状态要记录的信息包括楼层编号和按按钮的次数。 先判断是否到达终点,是则返回x.step(到达此楼层一共需洛谷p1135
分析: 提取关键字,至少,所以本题用bfs来解。 每一个电梯都有可以运动的步长,而且只能是这么长,所以我们要到达目的地要尝试在别的楼层转乘电梯,用bfs来暴力破解,达到楼层后立即返回,这个就不会超时。 代码: #include<stdio.h> struct point{ int place; int step; }; int book[500];//P1135 奇怪的电梯题解
题目传送门 一、广度优先搜索 #include <bits/stdc++.h> using namespace std; const int N = 100010; int n; //n层楼 int a; //从a层 int b; //到b层 int k[N];//k[i]数组,描述i层楼,可以向上+向下几层楼(如果不出界的话) struct rule { int floor; //当前楼P1135 奇怪的电梯
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2P1135 奇怪的电梯
吐槽 第一道同时用BFS和DFS两种方法做出来的题目 题目 BFS 最大的注意点就是判断是否经历过该楼层 #include<bits/stdc++.h> using namespace std; int n,a,b; int dis[201],f[201]; queue<int> q; bool check(int x){ return x>=1&&x<=n; } void bfs() { intJava P1135 奇怪的电梯
题目链接 bfs题目,不多说 下面是AC代码 import java.util.*; import java.math.*; public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int a=sc.nextInt(); int b=sc.nextIP1135 奇怪的电梯
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第ii层楼(1 \le i \le N)(1≤i≤N)上有一个数字K_i(0 \le K_i \le N)Ki(0≤Ki≤N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按P1135 奇怪的电梯
首先看题: 其实就是求A楼到B楼至少要按几次按钮。 这个题就是普通的搜索,具体请看代码: #include<cstdio> #include<iostream> #include<algorithm> using namespace std; long long n,a,b,bj=1;//n,a,b具体看题目,bj表示是否能到达B楼 long long k[101000],book[101000];/洛谷 P1135 奇怪的电梯
奇怪的电梯 题目链接 这个电梯真的好奇怪哦,这种电梯怕不是要急死快要迟到的人qwqwq 这道题LITTLESUN用了bfs,记录每一层楼的同时记录次数。注意在结束是进行标记用于输出到达不了的情况其实也可以在最后直接特判r.floor AC代码如下 #include<iostream> #include<cstdio> #include<cm洛谷P1135 奇怪的电梯【bfs】
题目:https://www.luogu.org/problemnew/show/P1135 题意: 一共有n层楼,在第i层可以往上或往下$k_i$层。 问从$a$层到$b$层至少需要多少乘多少次电梯。 思路: bfs 用vis标记当前层是否已访问过,如果是就不再重新入队因为肯定会循环。 要注意判断一下加或减层数时会不会越界。 1 #inclu