ZOJ - 4020 Traffic Light 【BFS】】的更多相关文章

题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 题意 给出一张地图 以及起点和终点 求是否能从起点走到终点 如果能 求出最小步数 如果不能 输出 -1 然后地图上的0表示在这个点 只能 上下走,,1 只能 左右走 没走一步 地图上 每个1 都变成 0 每个0 都变成 1 思路 那么地图变化 可以用 步数 % 2 来求得 如果 步数 % 2 是 1 那么此时 1 就是 0 0 就是 1 如果 步数 % 2…
[传送门]http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 [题目大意]从起点(sx, sy)出发,要到达(ex , ey).每次从点(x,y)走的时候要看红绿灯,灯的状态为1时只能左右走,走到(x , y+1)或者 (x , y-1):灯为0的时候只能上下走,走到(x +1, y)或者 (x-1 , y).现在问能不能从源点走到终点,如果能,输出最少需要走多少步. 注意(x,y)代表第x行第y列,不是传统意义上的…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 很简单的一个bfs题,是我想多了. 顺便学习一下C++的STL中的vector的用法:https://www.cnblogs.com/youpeng/p/10779019.html #include <cstdio> #include <vector> #include <queue> using namespace std; c…
[题目] 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000).农夫有两种移动方式: 1.从X移动到X-1或X+1,每次移动花费一分钟 2.从X移动到2*X,每次移动花费一分钟 假设牛没有意识到农夫的行动,站在原地不动.农夫最少要花多少时间才能抓住牛? [输入] 两个整数,N和K. [输出] 一个整数,农夫抓到牛所要花费的最小分钟数. [输入样例] 5 17 [输出样例] 4 [思路]就是简单的bfs,但是我忘记了上…
Description 乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位.然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度.请你设计一个程序,帮助乔治计算木棒的可能最小长度.每一节木棍的长度都用大于零的整数表示. Input 输入包含多组数据,每组数据包括两行.第一行是一个不超过64的整数,表示砍断之后共有多少节木棍.第二行是截断以后,所得到的各节木棍的长度.在最后一组数据之后,是一个零. Output 为每组数据,分别输出…
[题目描述] 输入nn代表有个n×nn×n的棋盘,输入开始位置的坐标和结束位置的坐标,问一个骑士朝棋盘的八个方向走马字步,从开始坐标到结束坐标可以经过多少步. [输入] 首先输入一个nn,表示测试样例的个数. 每个测试样例有三行. 第一行是棋盘的大小L(4≤L≤300)L(4≤L≤300): 第二行和第三行分别表示马的起始位置和目标位置(0..L−1)(0..L−1). [输出] 马移动的最小步数,起始位置和目标位置相同时输出00. [输入样例] 3 8 0 0 7 0 100 0 0 30 5…
[题目描述] 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走. 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到).只能在水平方向或垂直方向走,不能斜着走. [输入] 第一行是两个整数,R和C,代表迷宫的长和宽.( 1≤ R,C ≤ 40) 接下来是R行,每行C个字符,代表整个迷宫. 空地格子用‘.’表示,有障碍物的格子用‘#’表示. 迷宫左上角和右下角都是‘.’. [输出] 输出从左上角走到右下角至少要经过多少步(即至少要经过多少个空地格子…
[题目描述] 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫.今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪.现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪. 迷宫用一个R×C的字符矩阵来表示.字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的位置,字符#表示墙壁,字符.表示可以通行.阿尔吉侬在1个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一个位置,但不能走出地图边界. [输入]…
[题目描述] 定义一个二维数组: int maze[5][5] = { 0,1,0,0,0, 0,1,0,1,0, 0,0,0,0,0, 0,1,1,1,0, 0,0,0,1,0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线. [输入] 一个5 × 5的二维数组,表示一个迷宫.数据保证有唯一解. [输出] 左上角到右下角的最短路径,格式如样例所示. [输入样例] 0 1 0 0 00 1 0 1 00 0 0…
[题目描述] 少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶.叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处.迷阵由M×N个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全.现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他.现在要求你来帮助他实现这个目标. 下图 显示了一个迷阵的样例及李逍遥找到仙药的路线. [输入] 输入有多组测试数据. 每组测试数据以两个非零整数 M…