题意:

s是这个人开始位置;连续相同大写字母是 Each of the k trains,相应的火车具有相应的字母;

'.' 代表空;

有个人在最左列,上面有连续字母代表的火车,火车从左边出去的话,会从右边继续进来,

一开始是人先往右走一步,然后上下或者一步,然后火车往左移两步。

n有100,代表长度,k代表火车的数量;

思路:

BFS;

走完还要再走两个= =、妈个鸡啊。

一开始一直踏马地觉得没必要BFS,没必要BFS...后面搞懂了之前比赛中的思路是递推,也就是DP,但是踏马的DP递推真的写成了递推,往下乱搞。。。

感觉如果BFS简单清晰就直接上手啊!= =况且明明搜索擅长还不写,真是不好好想想就直接pass方案,真是蠢到家了!

贴一发挫代码//

#include <bits/stdc++.h>
using namespace std;
typedef long long LL; char ma[5][110];
bool vis[5][110];
struct asd{
int x,y;
};
queue<asd>q;
int n,k; bool Judge(int x,int y)
{
if(x<0||x>=3||vis[x][y]||ma[x][y]!='.')
return 0;
return 1;
} void solve_down(asd next)
{
next.x++;
if(Judge(next.x,next.y))
{
next.y++;
if(Judge(next.x,next.y))
{
next.y++;
if(Judge(next.x,next.y))
{
vis[next.x][next.y]=1;
q.push(next);
}
}
}
} void solve_up(asd next)
{
next.x--;
if(Judge(next.x,next.y))
{
next.y++;
if(Judge(next.x,next.y))
{
next.y++;
if(Judge(next.x,next.y))
{
vis[next.x][next.y]=1;
q.push(next);
}
}
}
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
while(!q.empty())
q.pop();
memset(vis,0,sizeof(vis));
scanf("%d%d",&n,&k);
for(int i=0;i<3;i++)
scanf("%s",ma[i]);
ma[0][n]=ma[0][n+1]='.';
ma[1][n]=ma[1][n+1]='.';
ma[2][n]=ma[2][n+1]='.';
asd now,next;
for(int i=0;i<3;i++)
if(ma[i][0]=='s')
{
now.x=i;
now.y=0;
break;
}
q.push(now);
bool flag=0;
while(!q.empty())
{
now=q.front();
q.pop();
if(now.y>=n-1)
{
flag=1;
break;
}
next.x=now.x;
next.y=now.y+1;
if(!Judge(next.x,next.y))
continue;
solve_down(next);
solve_up(next); next.y++;
if(Judge(next.x,next.y))
{
next.y++;
if(Judge(next.x,next.y))
{
vis[next.x][next.y]=1;
q.push(next);
}
}
}
if(flag)
puts("YES");
else
puts("NO");
}
return 0;
}

CodeForces 586D【BFS】的更多相关文章

  1. Codeforces 1037D【BFS】

    <题目链接> 题目大意: 给你一颗树的所有边,这些边是无向的,然后给你一段BFS序列,BFS都以1为根节点,判断这段BFS序列是否合法. 解题分析: 就是模拟BFS,某个父亲节点的所有子节 ...

  2. CodeForces 116C 【BFS】

    思路: 求所有树的最大高度? 注意:所有树从树根开始? #include <bits/stdc++.h> using namespace std; typedef long long LL ...

  3. 【bfs】抓住那头牛

    [题目] 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000).农夫有两种移动方式: 1.从X移动到X-1或X+1,每次 ...

  4. 【bfs】拯救少林神棍(poj1011)

    Description 乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位.然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度.请你 ...

  5. 【bfs】Knight Moves

    [题目描述] 输入nn代表有个n×nn×n的棋盘,输入开始位置的坐标和结束位置的坐标,问一个骑士朝棋盘的八个方向走马字步,从开始坐标到结束坐标可以经过多少步. [输入] 首先输入一个nn,表示测试样例 ...

  6. 【bfs】1252 走迷宫

    [题目描述] 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走. 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到).只能在水平方向或垂直方向走,不 ...

  7. 【bfs】献给阿尔吉侬的花束

    [题目描述] 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫.今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪.现在研究员们想 ...

  8. 【bfs】迷宫问题

    [题目描述] 定义一个二维数组: 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, }; 它表示一个迷 ...

  9. 【bfs】仙岛求药

    [题目描述] 少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶.叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处.迷阵由M×N个方格组成,有的 ...

随机推荐

  1. SAM4E单片机之旅——5、LED呼吸和PWM

    PWM在高频情况下,一个很好的用处就是通过控制占空比来控制输出的功率,比如控制风扇转速.LED灯的亮度等.这次就利用PWM的中断功能,动态改变脉冲的占空比,来实现呼吸灯的效果. 一.实现思路 PWM可 ...

  2. wepy原理研究

    像VUE一样写微信小程序-深入研究wepy框架 https://zhuanlan.zhihu.com/p/28700207 wepy原理研究 虽然wepy提升了小程序开发体验,但毕竟最终要运行在小程序 ...

  3. Qt笔记之使用设计器自定义窗口标题栏

    1.在窗口显示之前,设置WindowFlags为FramelessWindowHint,以产生一个没有边界的窗口 例如 Widget::Widget(QWidget *parent) : QWidge ...

  4. @GetMapping和@PostMapping接收参数的格式

    一.1.使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面 若返回json等内容到页面,则需要加@ResponseBody注解 ...

  5. Spring boot框架项目,使用maven命令将配置文件打包到jar包外,项目运行读取jar外配置文件

    1.1      在eclipse中配置maven命令 Mvn -e clean package -Ptest -DskipTests=true 1.1.1    执行命令之后得到jar 1.2    ...

  6. sendevent是使用

    按下: sendevent /dev/input/event4 1 254 1 sendevent /dev/input/event4 0 0 0 松开: sendevent /dev/input/e ...

  7. "makefile:5: *** missing separator. Stop."【转】

    本文转载自:http://blog.csdn.net/fireroll/article/details/8607903 写makefile时出现这个错误提示 是表示makefile中的命令前没有使用T ...

  8. ubuntu下安装android模拟器genymotion【转】

    本文转载自:http://www.jianshu.com/p/e6062ebb8fc9 去genymotion下载对应的安装包genymotion-2.4.0_x64.bin sudo ./genym ...

  9. -webkit-mask-box-image给框架加个同样大小的遮罩

    很棒的css属性,可以在div上方建个同大小的遮罩,配合线性变化gradient可以实现很酷的样式,比如:时间选择的UI组件,里面有个模糊的上方遮罩 手册地址:https://developer.mo ...

  10. 写给精明Java开发者的测试技巧

    我们都会为我们的代码编写测试,不是吗?毫无疑问,我知道这个问题的答案可能会从 “当然,但你知道怎样才能避免写测试吗?” 到 “必须的!我爱测试”都有.接下来我会给你几个小建议,它们可以让你编写测试变得 ...