john和牛在二维的图里面跑,john要抓住牛。

牛和john在遇到墙或者图的边界时都会花一单位的时间顺时针转动90度。否则花一单位时间往前走一格,当牛和john走到同一个格子中时,john抓住了牛。

求john抓住牛要多久。抓不住时输出0.

一开始想了很久如何判断抓不住的情况,相通了之后还是很简单的。

john和牛都走到了以前走到位置,且保持着以前相同的方向。则说明陷入了循环(再也抓不住了)

/*
ID: modengd1
PROG: ttwo
LANG: C++
*/
#include <iostream>
#include <stdio.h>
#include <memory.h>
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
using namespace std;
bool vis[10][10][4][10][10][4];
char input[10][10];
struct position
{pair<int,int> P;int dir;
};
void Move(position& x)
{//装墙或者出地图int nextX=x.P.first+dx[x.dir],nextY=x.P.second+dy[x.dir];if(input[nextX][nextY]=='*'||nextX<0||nextX>9||nextY<0||nextY>9){x.dir=(x.dir+1)%4;return ;}//往前走x.P.first=nextX;x.P.second=nextY;
}
int main()
{freopen("ttwo.in","r",stdin);freopen("ttwo.out","w",stdout);position john,cow;memset(vis,false,sizeof(vis));for(int i=0;i<10;i++){for(int j=0;j<10;j++){scanf("%c",&input[i][j]);if(input[i][j]=='F'){john.P.first=i;john.P.second=j;john.dir=0;}else if(input[i][j]=='C'){cow.P.first=i;cow.P.second=j;cow.dir=0;}}getchar();}int ans=0;position& J=john;position& C=cow;while(true){if(john.P.first==cow.P.first&&john.P.second==cow.P.second)break;if(vis[john.P.first][john.P.second][john.dir][cow.P.first][cow.P.second][cow.dir]){ans=0;break;}vis[john.P.first][john.P.second][john.dir][cow.P.first][cow.P.second][cow.dir]=true;Move(J);Move(C);ans++;}cout<<ans<<endl;return 0;
}

  

转载于:https://www.cnblogs.com/modengdubai/p/4784077.html

usaco The Tamworth Two相关推荐

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

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

  2. USACO 2.4.1 The Tamworth Two

    牛和农夫按照固定的走法在10x10的地图中走,每分钟走一步,求经过几分钟相遇.永远不能相遇输出0. 纯模拟的题. 判断永远不能相遇的方法是如果遇到了一个先前的状态,那么肯定存在循环,必定不能相遇. 程 ...

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

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

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

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

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

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

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

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

  7. usaco Shaping Regions

    这就是usaco 前面的windows area的变形. /* ID:jinbo wu TASK:rect1 LANG:C++ */ #include<iostream> #include ...

  8. usaco Postal Vans(dp)

    是哈密顿回路,然后...就不知道怎么写了 ,以前写过类似的不过情况没这么多也没这么复 usaco training 6.1.1 Postal Vans 题解 标签: usaco training题解d ...

  9. usaco Beef McNuggets

    这两天贼烦,ccf炸了,还有一个烦心事.哎我都不知道自己能不能坚持下去了.马上期末考了.这段时间还是抓紧时间复习吧同时刷usaco的节奏要跟以前一样了,毕竟课少了. 题解: 只要你知道以下的数论结论, ...

最新文章

  1. 转载:Systemd 命令
  2. 题目2:隐式图的搜索问题(A*算法解决八数码)代码实现
  3. go get 指定版本_没有VPS搭建govanityurls服务?别急!你依然可以自定义Go包导入路径...
  4. 四象限法推导lm曲线_IS曲线推导
  5. 美国计算机协会ACM子刊中国特辑:中国的人工智能初创企业
  6. jQuery原理第四天
  7. NOIP 2016(不是游记)
  8. 使用SignalR和SQLTableDependency进行记录更改的SQL Server通知
  9. Visual Studio 2019下用 C# 实现 Hill2 二阶希尔密码 的加密、解密 GUI界面
  10. scala文件通过本地命令运行
  11. 【转】伪O2O已死?2016年实体零售将迎来真正的O2O
  12. 油管机器学习基础 学习笔记
  13. 椭圆形建筑——逸夫演艺中心
  14. 测试小故事48:想当然
  15. 列出一些既好玩又能提高英语水平的电脑游戏
  16. 深度解析论文 基于 LSTM 的 POI 个性化推荐框架
  17. 从执行顺序看for循环(深入理解)
  18. 七.getchar 和 scanf
  19. 用cmd执行命令方法汇总
  20. R语言中如何编写自己的函数初步入门

热门文章

  1. 觉晓科技——前端笔试(2022.4.6)
  2. FGN: Fusion Glyph Network for Chinese Named Entity Recognition
  3. 智能手机省电方向终归何方?
  4. 价格奥秘-在超市遇见亚当斯密--第七章 物价下降,谁才是最大赢家?
  5. 淘宝猜你喜欢为什么一定要根据最近浏览行为推荐商品?
  6. 用于道路场景实时准确语义分割的深度双分辨率网络
  7. python删除文件部分内容_如何在python中删除文件的一部分?
  8. 机械师逐空T58笔记本无法开机如何重装系统教学
  9. LLMs之Guanaco:《QLoRA:Efficient Finetuning of Quantized LLMs》翻译与解读
  10. 短信系统升级内容—短信系统升级