1058-Tom and Jerry
描述
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的更多相关文章
- Tom与Jerry谁先死?
有如下问题:Tom的攻击力为113,血量为688,Jerry的攻击力为112,血量为691.每一个回合他们各攻击对方一次,请问谁先死? 这是一个简单的“人狗大战问题”,我们只要利用类的继承,在原有的基 ...
- Tom和Jerry来了,Tom和Jerry走了——北漂18年(38)
上次讲到跟我同一时候入职的女销售走了. 回忆起来,她的问题多半是技巧足够,脑子不足够,走了之后再没联系.不久之后,在老板的要求之下.LilyG又招聘了两位男销售,英文名字非常登对一个叫Tom,一个叫J ...
- Tom和Jerry在下棋
题目描述 方法: 状压DP #include <cstdio> #define bc(x) (__builtin_popcount(x)) ; ; << maxn][maxn ...
- UVALive 7308 Tom and Jerry 猫抓老鼠 物理题
题目链接: 就是一个老鼠在环上一速度v开始绕环走,一只猫从圆心出发,任意时刻圆心,猫,老鼠三者在一条直线上,且速度也是v,求多久后猫抓到老鼠. #include <cstdio> #inc ...
- 编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议106~109)
建议106:动态代理可以使代理模式更加灵活 Java的反射框架提供了动态代理(Dynamic Proxy)机制,允许在运行期对目标类生成代理,避免重复开发.我们知道一个静态代理是通过主题角色(Prox ...
- C++常用特性原理解析
在我的早期印象中,C++这门语言是软件工程发展过程中,出于对面向对象语言级支持不可或缺的情况下,一群曾经信誓旦旦想要用C统治宇宙的极客们妥协出来的一个高性能怪咖. 它驳杂万分,但引人入胜,出于多(mi ...
- <十一>JDBC_事务的处理+隔离
Tom给jerry汇款500元 1.如果多个操作,每个操作使用的是自己的单独的连接,则无法保证事务 2.具体步骤: 1>事务开始操作前,开始事务:取消Connection的默认提交行为 2& ...
- FreeMarker中文API手册(完整)
FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用 ...
- 基于AngularJS的企业软件前端架构[转载]
这篇是我参加QCon北京2014的演讲内容: 提纲: 企业应用在软件行业中占有很大的比重,而这类软件多数现在也都采用B/S的模式开发,在这个日新月异的时代,它们的前端开发技术找到了什么改进点呢? B/ ...
随机推荐
- WebResponse 取出全国省市区的邮编
WebResponse用法(根据省市区地址查询其邮编): class Program { static string url { get; set; } static void Main(string ...
- Windows 右键添加「cmd 打开」
1. 2. 3. 参考: 1.Windows右键添加"使用CMD打开" 2.WIN7.WIN8 右键在目录当前打开命令行Cmd窗口(图文)
- Contiki系统介绍
本文内容来源为contiki英文介绍,自己为了学习,将其大致翻译成中文,以便了解. 欢迎转载,转载请注明来源,如果有什么翻译不合适的地方,请留言指出,相互交流学习. 介绍 Contiki是一个开放源码 ...
- 模板:多Case输入处理
利用cin实现 while(cin >> value) { } 调试时使用Ctrl + Z 输入文件结束符
- C#使用反射工厂模式遇到System.TypeLoadException(类名错误导致)
项目中,在运行另一个反射类时出现问题,未能从程序集中加载类 class PopUpActionFactory { public static InterfacePopUpAction getActio ...
- 在MAC OS X下安装usb转串口驱动(PL2303主控芯片)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 因为最近手里有一块STM32Discovery开发板,所以想搞一下STM32的开发,我前面的 ...
- 在Windows 7下面IIS7的安装和 配置ASP的正确方法
在Windows 7下如何安装IIS7,以及IIS7在安装过程中的一些需要注意的设置,以及在IIS7下配置ASP的正确方法. 一.进入Windows 7的 控制面板,选择左侧的打开或关闭Windows ...
- bootstrap响应式网页设计的9条基本原则!
bootstrap响应式网页设计是针对多屏幕问题的一个很好的解决方案,但从印刷的视角来看有点困难.没有固定的页面尺寸,没有毫米或英寸,没有任何的物理限制,无从下手. 为了desktop和mobile单 ...
- 安装完MySQL后必须要调整的10项配置
2014年02月10日11:11 来源:开源中国 作者:BoydWang, 美好的2014, DrZ 编辑:徐志远 标签: 配置 , mysql , 数据库 [IT168 评论]当我们被人雇来监测My ...
- linux计划任务运行php文件的方法分享
在linux下,借助crontab,设置计划任务每天6点10分执行filename.php文件,写入一行时间到log日志中. 创建计划任务的脚本: dos2unix /path/to/filename ...