描述

Tom和Jerry在10*10的方格中:

*...*.....

......*...

...*...*..

..........

...*.C....

*.....*...

...*......

..M......*

...*.*....

.*.*......

C=Tom(猫) M=Jerry(老鼠) *=障碍物 .=空地

他们各自每秒中走一格,如果在某一秒末他们在同一格中,我们称他们“相遇”。注意,“对穿”是不算相遇的。 他们移动方式相同:平时沿直线走,下一步如果会走到障碍物上去或者出界,就用1秒的时间做一个右转90度。一开始他们都面向北方。 编程计算多少秒以后他们相遇。

输入

10行,格式如上

输出

相遇时间T。如果无解,输出-1。

样例输入

*...*.....

......*...

...*...*..

..........

...*.C....

*.....*...

...*......

..M......* .

..*.*....

.*.*......

样例输出

49

#include <iostream>
using namespace std;
char s[12][12];
void meet(int &x,int &y,int &f)
{
if(f==1)
{
if(s[x-1][y]!='*')
x--;
else
{
f=2;
return;
}
}
if(f==2)
{
if(s[x][y+1]!='*')
y++;
else
{
f=3;
return;
}
}
if(f==3)
{
if(s[x+1][y]!='*')
x++;
else
{
f=4;
return;
}
}
if(f==4)
{
if(s[x][y-1]!='*')
y--;
else
{
f=1;
return;
}
}
}
int main()
{
//freopen("a.txt","r",stdin);
int i,j,t=0;
int a,b,c,d;
for(i=-1;i<11;i++)
for(j=-1;j<11;j++)
s[i][j]='*';
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
cin>>s[i][j];
if(s[i][j]=='C')
{
a=i;
b=j;
}
if(s[i][j]=='M')
{
c=i;
d=j;
}
}
int f1=1,f2=1;
while(a!=c||b!=d)
{
meet(a,b,f1);
meet(c,d,f2);
t++;
if(t>100000)
{
t=-1;
break;
}
}
cout<<t<<endl;
return 0;
}

  

1058-Tom and Jerry的更多相关文章

  1. Tom与Jerry谁先死?

    有如下问题:Tom的攻击力为113,血量为688,Jerry的攻击力为112,血量为691.每一个回合他们各攻击对方一次,请问谁先死? 这是一个简单的“人狗大战问题”,我们只要利用类的继承,在原有的基 ...

  2. Tom和Jerry来了,Tom和Jerry走了——北漂18年(38)

    上次讲到跟我同一时候入职的女销售走了. 回忆起来,她的问题多半是技巧足够,脑子不足够,走了之后再没联系.不久之后,在老板的要求之下.LilyG又招聘了两位男销售,英文名字非常登对一个叫Tom,一个叫J ...

  3. Tom和Jerry在下棋

    题目描述 方法: 状压DP #include <cstdio> #define bc(x) (__builtin_popcount(x)) ; ; << maxn][maxn ...

  4. UVALive 7308 Tom and Jerry 猫抓老鼠 物理题

    题目链接: 就是一个老鼠在环上一速度v开始绕环走,一只猫从圆心出发,任意时刻圆心,猫,老鼠三者在一条直线上,且速度也是v,求多久后猫抓到老鼠. #include <cstdio> #inc ...

  5. 编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议106~109)

    建议106:动态代理可以使代理模式更加灵活 Java的反射框架提供了动态代理(Dynamic Proxy)机制,允许在运行期对目标类生成代理,避免重复开发.我们知道一个静态代理是通过主题角色(Prox ...

  6. C++常用特性原理解析

    在我的早期印象中,C++这门语言是软件工程发展过程中,出于对面向对象语言级支持不可或缺的情况下,一群曾经信誓旦旦想要用C统治宇宙的极客们妥协出来的一个高性能怪咖. 它驳杂万分,但引人入胜,出于多(mi ...

  7. <十一>JDBC_事务的处理+隔离

    Tom给jerry汇款500元 1.如果多个操作,每个操作使用的是自己的单独的连接,则无法保证事务 2.具体步骤:   1>事务开始操作前,开始事务:取消Connection的默认提交行为 2& ...

  8. FreeMarker中文API手册(完整)

    FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用 ...

  9. 基于AngularJS的企业软件前端架构[转载]

    这篇是我参加QCon北京2014的演讲内容: 提纲: 企业应用在软件行业中占有很大的比重,而这类软件多数现在也都采用B/S的模式开发,在这个日新月异的时代,它们的前端开发技术找到了什么改进点呢? B/ ...

随机推荐

  1. 图片上传即时显示javascript代码

    这是基于javascript的一种图片上传即时显示方法,测试结果IE6和火狐浏览器可以正常使用.google浏览器不兼容. 这种方法兼容性比较差,仅供参考,建议使用ajax方法来即时显示图片. 1.首 ...

  2. datatable dateset 载体传递数据、存储过程

    第一部分:数据库通过存储过程读取数据,通过datatable接受,前台通过asp:repeater.DataSource()和binding()绑定数据 /// <summary> /// ...

  3. (转)Flickr架构

    Flickr(http://www.flickr.com/ ) 是国外一个领先的图片分享网站,现在应该在yahoo门下,感觉yahoo还是有很多好东西,奈何资本要抛弃他了.这个轮回其实挺有意思的,起先 ...

  4. Android知识思维导图

    注:图片来源于网络,谢谢分享. 一.  项目目录结构: 布局控件 ListVIew控件 Widget:(窗口小部件) Activity Manager 二.  应用程序的5个模块构成: Activit ...

  5. php和apache的关系和作用()

    出处:http://blog.csdn.net/hongweideng/article/details/41723465 php和apache的关系和作用是很多学习php的朋友非常关注的问题 首先在一 ...

  6. JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1

    技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] 第 3 章 用 JavaScri ...

  7. makefile --文件文档经链接使用

    生成.a 文件是什么? 在makefile的设置使得文件文档可以方便的使用,不用特意的加某些头文件 加入某些产生的链接包

  8. HTML5之 WebSockets

    ------- 新的网络连接技术 - Web-Sockets 持续连接数据流 全双工工作方式 http补充品而非替代品 - 应用场景 聊天室 股票显示 在线游戏(尤为突出) - 2byte的通信 1b ...

  9. js中 在数组中删除重复的元素(自保留一个)

    例如:var student = [‘qiang’,’ming’,’tao’,’li’,’liang’,’you’,’qiang’,’tao’]; 第一种思路是:遍历要删除的数组arr, 把元素分别放 ...

  10. php常量运用注意

    多个文件引入,常量重复定义会失效,后者无法重复定义...靠