题目描述
两只牛在森林里故意走丢了。农民John开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和John)。
追击在10x10的平面网格内进行。一个格子可以是:
bullet 一个障碍物,
bullet 两头牛(它们总在一起), 或者
bullet 农民John.两头牛和农民John可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。
一个格子可以是:
bullet . 空地
bullet * 障碍物
bullet C 两头牛
bullet F 农民John
这里有一个地图的例子::




.F…


…C…

.
..
牛在地图里以固定的方式游荡。每分钟,它们可以向前移动或是转弯。如果前方无障碍且不会离开地图,它们会按照原来的方向前进一步。否则它们会用这一分钟顺时针转90度。
农民John, 深知牛的移动方法,他也这么移动。
每次(每分钟)农民John和两头牛的移动是同时的。如果他们在移动的时候穿过对方,但是没有在同一格相遇,我们不认为他们相遇了。当他们在某分钟末在某格子相遇,那么追捕结束。开始时,John和牛都面向北方。

输入
Lines 1-10:
每行10个字符,表示如上文描述的地图。

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

样例输入




.F…


…C…

.
..

样例输出
49

题意描述:

输入一个10*10的矩阵,.代表路,*代表障碍物,C和F分别代表牛和农夫john,牛开始向北行驶每走一步需要1分钟,然后碰见障碍物或者是墙就会向右转,转向也需要1分钟,农夫john和牛的走法相同,问农夫要用多长时间才能找到牛。如果一直都找不到就输出0。

解题思路:

其实本体第一眼看上去有点像是dfs,但其实是个模拟,你只需要去模拟牛和农夫john走的过程就可,看他们两个是否在某一时刻会出现在同一个点上。

next数组就是他每次的向右转的转向数组,你需要判断牛在下一时刻是否是墙或者是障碍物,农夫john和它一样代码如下
//C
if(x1+next[rex][0]<0||x1+next[rex][0]>9||y1+next[rex][1]<0||y1+next[rex][1]>9||s1[x1+next[rex][0]][y1+next[rex][1]]==1){count++;rex=(rex+1)%4;}else{count++;x1=x1+next[rex][0];y1=y1+next[rex][1];}

AC代码如下

#include<stdio.h>
int next[4][2]={-1,0,0,1,1,0,0,-1}; int main(void){int x1,y1,x2,y2,count=0,rex=0,rex1=0;char s[15][15];int s1[15][15];for(int i=0;i<10;i++){for(int j=0;j<10;j++){scanf(" %c",&s[i][j]);if(s[i][j]=='.')s1[i][j]=0;else if(s[i][j]=='*')s1[i][j]=1;else if(s[i][j]=='C'){x1=i;y1=j;s1[i][j]=0;}else if(s[i][j]=='F'){x2=i;y2=j;s1[i][j]=0;}}}while(1){if(x1==x2 && y1==y2){printf("%d\n",count);break;} if(count>10000){//找不到printf("0\n");break;}//Cif(x1+next[rex][0]<0||x1+next[rex][0]>9||y1+next[rex][1]<0||y1+next[rex][1]>9||s1[x1+next[rex][0]][y1+next[rex][1]]==1){count++;rex=(rex+1)%4;}else{count++;x1=x1+next[rex][0];y1=y1+next[rex][1];}//Fif(x2+next[rex1][0]<0||x2+next[rex1][0]>9||y2+next[rex1][1]<0||y2+next[rex1][1]>9||s1[x2+next[rex1][0]][y2+next[rex1][1]]==1){rex1=(rex1+1)%4;}else{x2=x2+next[rex1][0];y2=y2+next[rex1][1];}}return 0;
}

两只塔姆沃斯牛(模拟)相关推荐

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

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

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

    文章目录 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 题解: [USACO2.4]两只塔姆沃斯 ...

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

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

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

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

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

    洛谷题目:P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two 题目如下: 思路: 简单的模拟,不过像这种上下左右的移动方式倒是可以留意下,我是用%的方式来改变的. 我的代 ...

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

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

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

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

  8. usaco The Tamworth Two 两只塔姆沃斯牛

    两只牛在森林里故意走丢了.农民 John 开始用他的专家技术追捕这两头牛.你的任务是模拟他们的 行为(牛和 John). 追击在 10x10 的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛( ...

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

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

最新文章

  1. GoogleFusionTablesAPI初探地图与云计算
  2. SQLite-Java-Hibernate类似hibernate的数据库辅助工具
  3. CSS 同级元素浮动分析小结
  4. libslog---高性能开源C/C++多线程安全日志库
  5. 怎样考计算机教师资格证书,非师专生怎么考取计算机教师资格证书?
  6. 嵌入网站的挖矿代码——Monerominer.rocks
  7. Spring Cloud Ribbon 负载均衡客户端调用示例
  8. 在MySQL中,一条查询语句是如何执行的
  9. VC++实现标准型计算器步骤及源码
  10. linux文件解压与压缩命令
  11. 计算机英语中文参考书,推荐几本计算机英语书?
  12. photoshopCC 2018入门学习
  13. MRT退休后的HEG(HDF-EOS To GeoTIFF Conversion Tool )工具安装
  14. Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务
  15. ​LeetCode刷题实战450:删除二叉搜索树中的节点
  16. 香港大学和清华大学计算机,香港大学在我国属于什么水平,有哪些优势、能够和清华北大相比吗...
  17. 拒绝背后黑手的窥探IPC$漏洞大揭秘
  18. 在配置Intel realsense (D435i)时遇到的问题(转载)
  19. Python+Vue计算机毕业设计食堂窗口美食评价系统4yee6(源码+程序+LW+部署)
  20. linux之sudo apt-get install **** 是到哪里下载软件以及下载到哪里去了

热门文章

  1. linux mint kde桌面,Linux Mint 18.3是最后一个使用KDE桌面的版本,KDE怒提5年内目标
  2. Mysql之快速上手sql优化
  3. qt多种字体格式并用
  4. 学习C语言前必看!!(学习C Primer Plus笔记一)
  5. unity3d 三分钟实现简单的赛车漂移
  6. siri捷键_如何使Siri响应您的声音(不按任何键)
  7. 大凶杀案嫌犯熊振林在武汉被抓(搞笑版)
  8. linux运维面试题总结
  9. python批量打印复印_惠普集群打印 小规模灵活批量打印方案
  10. Android监听网络下载速度(记录)