题目描述

两只牛逃跑到了森林里。Farmer John 开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和 John)。

追击在 10×1010 \times 1010×10 的平面网格内进行。一个格子可以是:一个障碍物,两头牛(它们总在一起),或者 Farmer John。两头牛和 Farmer John 可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。

一个格子可以是:

. 空地;
* 障碍物;
C 两头牛;
F Farmer John。

这里有一个地图的例子:

*...*.....
......*...
...*...*..
..........
...*.F....
*.....*...
...*......
..C......*
...*.*....
.*.*......

牛在地图里以固定的方式游荡。每分钟,它们可以向前移动或是转弯。如果前方无障碍(地图边沿也是障碍),它们会按照原来的方向前进一步。否则它们会用这一分钟顺时针转 90 度。 同时,它们不会离开地图。

Farmer John 深知牛的移动方法,他也这么移动。

每次(每分钟)Farmer John 和两头牛的移动是同时的。如果他们在移动的时候穿过对方,但是没有在同一格相遇,我们不认为他们相遇了。当他们在某分钟末在某格子相遇,那么追捕结束。

读入十行表示地图。每行都只包含 10 个字符,表示的含义和上面所说的相同。保证地图中只有一个 F 和一个 C。F 和 C 一开始不会处于同一个格子中。

计算 Farmer John 需要多少分钟来抓住他的牛,假设牛和 Farmer John 一开始的行动方向都是正北(即上)。 如果 John 和牛永远不会相遇,输出 0。
输入格式

输入共十行,每行 10 个字符,表示如上文描述的地图。
输出格式

输出一个数字,表示 John 需要多少时间才能抓住牛们。如果 John 无法抓住牛,则输出 0。
输入输出样例
输入 #1

*...*.....
......*...
...*...*..
..........
...*.F....
*.....*...
...*......
..C......*
...*.*....
.*.*......

输出 #1

49

解题思路:
模拟,把每次牛和农夫走的点都进行对比,如果相等就输出时间,我假如时间大于50000就是代表不会相遇

程序代码:

#include<stdio.h>
char s[20][20];
int next[4][2]={{-1,0},{0,1},{1,0},{0,-1}};
int tx1,ty1,tx2,ty2;
int main()
{int i,j,k1,k2,n,m,p1,q1,p2,q2,flag,sum,v1,v2,w1,w2;sum=0;for(i=0;i<10;i++)scanf(" %s",s[i]);for(i=0;i<10;i++)for(j=0;j<10;j++){if(s[i][j]=='F'){tx1=p1=i;ty1=q1=j;}if(s[i][j]=='C'){tx2=p2=i;ty2=q2=j;}}flag=0;v1=v2=-1;w1=w2=0;//最初农夫和牛向北方向走k1=k2=0; //记录旋转的方向while(1){sum++;tx1=tx1+v1;ty1=ty1+w1;if(ty1<0||ty1>9||tx1<0||tx1>9||s[tx1][ty1]=='*')//防止数组会越界{k1++;tx1=p1;ty1=q1;    //如果走到墙或者走出的区域则让坐标还是等于上一步坐标,该步为旋转方向v1=next[k1%4][0];w1=next[k1%4][1];}else{p1=tx1;q1=ty1;//把农夫的坐标保存一下}tx2=tx2+v2;ty2=ty2+w2;if(tx2<0||tx2>9||ty2<0||ty2>9||s[tx2][ty2]=='*'){k2++;tx2=p2;ty2=q2;v2=next[k2%4][0];w2=next[k2%4][1];}else{p2=tx2;q2=ty2;}  //printf("%d %d %d %d\n",p2,q2,p1,q1);if(p1==p2&&q1==q2)//比较两个坐标是否相等{flag=1;break;}if(sum>50000)break;}if(flag==1)printf("%d\n",sum);elseprintf("0\n");return 0;
}

洛古P1518—两只塔姆沃斯牛相关推荐

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

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

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

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

  3. 洛谷P1518 两只塔姆沃斯牛

    1.构建地图 (矩阵读入)矩阵边缘围上一圈障碍物: 2.模拟F和C的运动     先判断前方是否有障碍物     如果没有障碍物,前进一步     如果有障碍物,改变方向     向北:x-1,y: ...

  4. P1518 两只塔姆沃斯牛 The Tamworth Two(模拟)

    P1518 两只塔姆沃斯牛 The Tamworth Two 219通过 418提交 题目提供者该用户不存在 标签 USACO 难度 普及+/提高 时空限制 1s / 128MB 2017/4/21 ...

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

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

  6. P1518两只塔姆沃斯牛

    学习笔记: 用二维数组标识状态来记录地图 使用^来判定相同相异 数组名做指针时不能反复调用(原因不明待解决) AC代码: 不足:没利用状态专属值去判定死循环!!!! #include<iostr ...

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

    两只塔姆沃斯牛 The Tamworth Two 一.题目信息 1.题目链接 2.题目详情 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 二.题目详解 1.逻辑 2.代码 (1 ...

  8. 【菜鸟进阶之路】P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two - 洛谷

    一.题目部分 选自洛谷: P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two 二.解题过程 思路 见"提交AC答案"部分给出的注释 提交AC答案 #i ...

  9. 洛谷P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two 题解 (C/C++)

    主要思路如下 1.为了便于边界值的处理,将数组开到12*12 四周边界赋值为'*' ,相当于墙 2.两个一维数组分别存储人和牛的坐标以及方向,北.东.南.西分别用0.1.2.3代表,顺时针转弯时直接将 ...

最新文章

  1. Python-高阶函数
  2. Git 版本控制之 GitFlow
  3. 【NLP】【七】fasttext源码解析
  4. php面试专题---2、常量及数据类型考点
  5. 提高编程能力的7条建议
  6. android 插入耳机 使用自身mic录音_这样选用麦克风,耳机降噪效果会更好
  7. 如何在Wireshark确定数据集?
  8. Async Program 基本知识 (Process、Thread、Context Switch)
  9. Ubunt_配置_tftp(文件传输)
  10. java调用chrome内核_selenium中如何测试360等基于chrome内核的浏览器
  11. 计算机病毒库更新记录表,计算机病毒库
  12. 初级软考程序员科目一考什么内容?
  13. python图像手绘效果_python 3.6实现图像的手绘效果
  14. 保姆级讲解Transformer
  15. 我国网络营销发展的现状、障碍与对策
  16. Springboot过滤器中注入Bean
  17. 修改Wordpress固定链接导致页面无法无法访问的解决办法
  18. VisualStudio 调试时会不断刷新 WPF 应用渲染
  19. python在哪个城市工资高_“英语学科教学和笔译专业,哪个工资较高?”
  20. CodeForces 1300C Anu Has a Function

热门文章

  1. 手机在线抓娃娃:600亿的「直播+物联网」爆发市场,会有你的份吗?
  2. 如何选购最合适的洗衣机,看这篇文章就够了
  3. MSYS2 Windows软件分发和构建平台
  4. java 九九乘法表 正序 倒序
  5. 如何与 MACOM 建立 EDI 连接?
  6. mastodon 网络_Mastodon:社交媒体集中化的联合答案
  7. 热门项目:杭州固本生物科技有限公司35%股权转让
  8. ispm13:项目管理各个过程的工具和技术(重点知识)
  9. zookeeper C API实例
  10. HTML表格、表单及其美化