P1518 两只塔姆沃斯牛 The Tamworth Two

简单的模拟题,代码量不大。

他们走的路线取决于障碍物,可以把边界也看成障碍物,遇到就转,枚举次,因为100 * 100 * 4,只有4个可能在一个格子里面走,上下左右,按照给定的方式枚举,如果相遇就输出,没有就输出不可相遇。

(1) 边界看成障碍物,都变成 * 号就好了。

(2) 然后定义两个表示方向的数组

int dx[]={-,,,};
int dy[]={,,,-};

分别代表上右下左(顺时针)

(3) 立两个flag:flag_F表示F现在的方向,flag_C同理。

(4) 找出F和C的初始位置。

(5) 然后开始枚举每一分钟的情况,要看清楚题目里说明了转弯需要花费时间,循环枚举。

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int dx[]={-,,,};
int dy[]={,,,-};
char map[][];
int cx,cy,fx,fy,flag_C,flag_F;
int main()
{
flag_C=flag_F=;
for(int i=;i<=;i++) //边界直接定义为障碍
map[][i]='*',map[i][]='*',map[][i]='*',map[i][]='*'; for(int i=;i<=;i++) //输入
for(int j=;j<=;j++)
cin>>map[i][j]; for(int i=;i<=;i++) //查找 F和 C的位置。
{
for(int j=;j<=;j++)
{
if(map[i][j]=='C')cx=i,cy=j,map[i][j]='.';
if(map[i][j]=='F')fx=i,fy=j,map[i][j]='.';
}
}
for(int i=;i<=;i++) //循环枚举
{
if(map[cx+dx[flag_C]][cy+dy[flag_C]]!='*')
cx=cx+dx[flag_C],cy=cy+dy[flag_C];
else flag_C++,flag_C%=; if(map[fx+dx[flag_F]][fy+dy[flag_F]]!='*')
fx=fx+dx[flag_F],fy=fy+dy[flag_F];
else flag_F++,flag_F%=; if(fx==cx&&fy==cy)
{
printf("%d",i);
return ;
}
// cout<<"F:"<<fx<<" "<<fy<<" and "<<"C:"<<cx<<" "<<cy<<"\n";
}
printf("")
}

洛谷 P1518 两只塔姆沃斯牛的更多相关文章

  1. 洛谷P1518 两只塔姆沃斯牛 The Tamworth Two

    P1518 两只塔姆沃斯牛 The Tamworth Two 109通过 184提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交  讨论  题解 最新讨论 求数据 题目背景 题目描 ...

  2. 洛谷 P1518 两只塔姆沃斯牛 The Tamworth Two

    P1518 两只塔姆沃斯牛 The Tamworth Two 题目背景 题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在1 ...

  3. 洛谷——P1518 两只塔姆沃斯牛 The Tamworth Two

    https://www.luogu.org/problem/show?pid=1518 题目背景 题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为( ...

  4. luogu P1518 两只塔姆沃斯牛 The Tamworth Two

    luogu P1518 两只塔姆沃斯牛 The Tamworth Two 题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在 ...

  5. P1518 两只塔姆沃斯牛 The Tamworth Two(简单的搜索题)

    题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它们总 ...

  6. P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two

    // Problem: P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two // Contest: Luogu // URL: https://www.luogu.com ...

  7. 【USACO 2.4.1】两只塔姆沃斯牛

    [题目描述] 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它 ...

  8. (bzoj1337 || 洛谷P1742 最小圆覆盖 )|| (bzoj2823 || 洛谷P2533 [AHOI2012]信号塔)

    bzoj1337 洛谷P1742 用随机增量法.讲解:https://blog.csdn.net/jokerwyt/article/details/79221345 设点集A的最小覆盖圆为g(A) 可 ...

  9. 洛谷 P3904 三只小猪

    题目背景 你听说过三只小猪的故事吗?这是一个经典的故事.很久很久以前,有三只小猪.第一只小猪用稻草建的房子,第二个小猪用木棍建的房子,第三个小猪则使用砖做为材料.一只大灰狼想吃掉它们并吹倒了稻草和木棍 ...

随机推荐

  1. 基于事件驱动机制,在Service Mesh中进行消息传递的探讨

    翻译 | 宋松 原文 | https://www.infoq.com/articles/service-mesh-event-driven-messaging 关键点 当前流行的Service Mes ...

  2. Android—— ListView 的简单用法及定制ListView界面

    一.ListView的简单用法 2. 训练目标 1) 掌握 ListView 控件的使用 2) 掌握 Adapter 桥梁的作用 实现步骤: 1)首先新建一个项目, 并让ADT 自动帮我们创建好活动. ...

  3. hdoj1698【线段树Lazy操作】

    区间更新lazy操作一发. #include<cstdio> #include<iostream> #include<string.h> #include<a ...

  4. bzoj 2882: 工艺【SAM】

    看上去比较SA,但是在学SAM所以就用SAM来做-- 把串复制一遍接在后面,对这个新串求SAM(这里的儿子节点要用map转移),然后从根节点每次都向最小的转移走,这样走n次转移的串就是答案 #incl ...

  5. TensorFlow多线程输入数据处理框架(二)——输入文件队列

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 一个简单的程序来生成样例数据. #!/usr/bin/env python # -*- coding: UTF-8 ...

  6. hdu1102 Constructing Roads 基础最小生成树

    //克鲁斯卡尔(最小生成树) #include<cstdio> #include<iostream> #include<algorithm> using names ...

  7. fzu Problem 2198 快来快来数一数 (快速幂+优化)

    题目链接: Problem  2198  快来快来数一数 题目描述: 给出n个六边形排成一排,a[i]代表i个六边形能组成的生成树个数,设定s[i]等于a[1]+a[2]+a[3]+....+a[i- ...

  8. debug授权码

    www.vfxcx.com 704835b5c54b56426257e0742568fe54

  9. android开发学习 ------- Retrofit+Rxjava+MVP网络请求的实例

    http://www.jianshu.com/p/7b839b7c5884   推荐 ,照着这个敲完 , 测试成功 , 推荐大家都去看一下 . 下面贴一下我照着这个敲完的代码: Book实体类 - 用 ...

  10. js事件、Js中的for循环和事件的关系、this

    一.js事件  1.事件 用户在网页中所触发的行为 鼠标滑动种类很多,键盘.表单特列: 点击:onclick 鼠标进入:onmouseenter 鼠标离开:onmouseleave 鼠标悬浮:onmo ...