P1135 奇怪的电梯dfs, 视频播放量 308、弹幕量 0、点赞数 6、投硬币枚数 2、收藏人数 1、转发人数 1, 视频作者 小王11111111110, 作者简介 ,相关视频:利用Matlab进行公式推导技巧,前Google工程师王争手把手教你写高质量代码!,Cursor新手入门教程01:基础设置与配置|设
voiddfsInEveryFloor() { if(当前楼层 == 目标楼层) { 做一些操作... retrun; } if(满足电梯向上走的条件) { dfsInEveryFloor(); } if(满足电梯向下走的条件) { dfsInEveryFloor(); } } 我们假设step是所求的最小次数,sum为某一条路需要的次数,那么可以知道: 在一个结点处,无论向上还是向下,sum...
P1135 奇怪的电梯(dfs、bfs) #include<bits/stdc++.h>usingnamespacestd;intn,m,A,B;intflag=0,ans=0x3f3f3f,vis[205];inta[205];voiddfs(intk,intstep){if(vis[k]||step>ans)return;if(k<0||k>n)return;if(k==B){ flag=1; ans=min(ans,step);return; } vis[k]=1; dfs(k+a[k],...
呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),...
#include<bits/stdc++.h>usingnamespacestd;constintN =210;intn, A, B;intcnt[N];intk[N];voiddfs(intu,intcur){ cnt[cur] = u;intt1 = cur + k[cur], t2 = cur - k[cur];if(t1 <= n && u +1< cnt[t1]) dfs(u +1, t1);if(t2 >=1&& u +1< cnt[t2]) dfs(u +1, ...
P1135 奇怪的电梯题解 题目传送门 总结与感悟 1、查找最短路径,首选广度优先搜索,深度优先搜索和动态规划都似乎有大炮打蚊子的嫌疑,不好想,细节多。 2、广度优先搜索,一般入队列的都是一个结构体或者pair<int,int> ,因为如果只是一个整数,描述的信息量太小。
能用DFS或BFS做的题,本题解使用BFS。 题面 时间空间限制:1.0s 125.0MB silu 思路 因为要求的是按按钮的最少次数,所以可以使用优先队列。定义结构体opt(operation的简写),里面放有两个int,一个表示楼层,一个表示总按键次数,重载大于号小于号,只以总按键次数为关键字排序。在优先队列中,将按按钮次数最少的放在...
题意:有一nn层高的大楼,每层楼都只能在合法情况下上xx层或者下xx层,问你是否能从aa层楼坐电梯到bb层楼,输出最小步数. 题解:直接dfs搜,floflo表示层数,cntcnt表示步数,如果flo=bflo=b,维护最小值,然后对这层楼标记已走过,判断是否合法再向上向下搜,然后回溯取消标记. ...
洛谷P1135 奇怪的电梯BFS&DFS 题目链接: https://www.luogu.org/problem/P1135 参考代码: DFS: #include<bits/stdc++.h>using namespacestd;intn,a,b,arr[201],ans=100000;boolcf[201];voiddfs(intnow,intsum)//now现在的楼层,sum按按钮的次数{if(now==b)...
洛谷P1135 奇怪的电梯(记忆化DP,回溯) 题目大意: 有一个电梯,电梯每层可以上或下Ai层,只要上或者下Ai层是合理的 问从A楼层到B楼层最少需要几步。若到达不了则输出-1 解题思路: 这里有一个难点,就是怎么知道产生了循环比如 1->3->5 然后 5->1,产生了这种循环。