hdu 4740
老虎左拐,老鼠右拐,碰到不能走的拐一次,如果还不能走就停下,自己走过的不能走,求相遇的坐标或-1
一个停下之后,另一个还可以走
#include <cstdio>
#include <cstring>
using namespace std;
#define N 1005
struct node
{
int x,y;
}p[N*N],q[N*N];
int visi[N][N],xy[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int n;
int donkey(int x,int y,int d)
{
int step=1;
while(!visi[x][y]&&x<n&&x>=0&&y<n&&y>=0)
{
p[step].x=x;p[step++].y=y;
visi[x][y]=1;
x=x+xy[d][0];y=y+xy[d][1];
if(visi[x][y]||x<0||x>=n||y>=n||y<0)
{
x=x-xy[d][0];y=y-xy[d][1];
d=(d+1)%4;
x=x+xy[d][0];y=y+xy[d][1];
if(visi[x][y]||x<0||x>=n||y>=n||y<0) break;
} }
return step-1;
} int tiger(int x,int y,int d)
{
int step=1; while(!visi[x][y]&&x<n&&x>=0&&y<n&&y>=0)
{
q[step].x=x;q[step++].y=y;
visi[x][y]=1;
x=x+xy[d][0];y=y+xy[d][1];
if(visi[x][y]||x<0||x>=n||y>=n||y<0)
{
x=x-xy[d][0];y=y-xy[d][1];
d=(d+3)%4;
x=x+xy[d][0];y=y+xy[d][1];
if(visi[x][y]||x<0||x>=n||y>=n||y<0) break;
} }
return step-1;
} int main()
{
int i,j,r1,c1,d1,r2,c2,d2,s1,s2,flag;
while(scanf("%d",&n),n)
{
scanf("%d%d%d",&r1,&c1,&d1);
scanf("%d%d%d",&r2,&c2,&d2);
memset(visi,0,sizeof(visi));
s1=donkey(r1,c1,d1);
memset(visi,0,sizeof(visi));
s2=tiger(r2,c2,d2);
i=1;
flag=0;
while(i<=s1||i<=s2)
{
if(i>s1) {p[i].x=p[i-1].x;p[i].y=p[i-1].y;}
if(i>s2) {q[i].x=q[i-1].x;q[i].y=q[i-1].y;}
if(p[i].x==q[i].x&&p[i].y==q[i].y)
{
printf("%d %d\n",p[i].x,p[i].y);
flag=1;
break;
}
i++;
}
if(!flag) printf("-1\n");
/* printf("%d\n",s2); for(i=1;i<=s2;i++)
{
printf("%d %d\n",q[i].x,q[i].y);
}
*/
}
return 0;
}
hdu 4740的更多相关文章
- hdu 4740 The Donkey of Gui Zhou bfs
The Donkey of Gui Zhou Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproble ...
- hdu 4740 The Donkey of Gui Zhou(暴力搜索)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4740 [题意]: 森林里有一只驴和一只老虎,驴和老虎互相从来都没有见过,各自自己走过的地方不能走第二次 ...
- hdu 4740【模拟+深搜】.cpp
题意: 给出老虎的起始点.方向和驴的起始点.方向.. 规定老虎和驴都不会走自己走过的方格,并且当没路走的时候,驴会右转,老虎会左转.. 当转了一次还没路走就会停下来.. 问他们有没有可能在某一格相遇. ...
- hdu 4740 The Donkey of Gui Zhou(dfs模拟好题)
Problem Description There was no donkey ,) , the down-right cell ,N-) and the cell below the up-left ...
- HDU 4740 The Donkey of Gui Zhou (模拟)
由于一开始考虑的很不周到,找到很多bug.....越改越长,不忍直视. 不是写模拟的料...................... 反正撞墙或者碰到已经走过的点就会转向,转向后还碰到这两种情况就会傻站 ...
- HDU 4740 模拟题意
九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11711743 题意:驴和老虎在方格中跑,跑的方式:径直跑,若遇到边界或之前走过的 ...
- hdu 4740 The Donkey of Gui Zhou
1.扯犊子超多if else 判断的代码,华丽丽的TLE. #include<stdio.h> #include<string.h> #define N 1010 int ma ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
随机推荐
- 深入理解Autofac生命周期
为什么Autofac表现的这样? 这里似乎有几个陷阱,虽然这里只有一个------并且这个值得重申: Autofac将会跟踪每一个他所创建的可销毁的组件实例,无论这个实例是怎样被获取的. 当然,最终. ...
- android activity启动的时候隐藏软键盘
1.概述 android如果界面有EditText之类的跳软键盘的控件 在跳转到该界面是默认会跳出软键盘的. 更何况有些需求要直接需要获取焦点 <requestFocus /> 如果是E ...
- 修改IE8搜索框为指定搜索引擎,如CSDN、百度知道等
1.运行regedit打开注册表编辑器2.找到\HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes\3.添加新搜索项 ...
- C语言的本质(21)——预处理之三:其它预处理特性及总结
C标准规定了几个特殊的宏,在不同的地方使用可以自动展开成不同的值,预编译程序对于在源程序中出现的这些串将用合适的值进行替换.这些宏有下面这些: __FILE__ 展开为当前源文件的文件名,是一个字符串 ...
- mini2440 uboot使用nfs方式引导内核,文件系统
mini2440 uboot使用nfs方式引导内核,文件系统 成于坚持,败于止步 看了一段时间的u-boot了,到今天才真正完全实现u-boot引导内核和文件系统,顺利开机,在此记录完整过程 1.首先 ...
- linux之SQL语句简明教程---TRIM
SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾.最常见的用途是移除字首或字尾的空白.这个函数在不同的资料库中有不同的名称: MySQL: TRIM( ), RTRIM( ), LTRI ...
- 【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类
续[Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之三]动手绑定自己定义类至Lua 之后.我们已经完毕了自己定义类至Lua的绑定.在接下来的环节,我们将使用它. 首先,我们须要确定 ...
- 【部分枚举】【3-21个人赛】ProblemH
Problem H Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Sub ...
- CSS 浏览器默认样式
不要再说div天生就是block——这句话应该换成:浏览器默认样式天生规定了div是block——所以才导致了div是block!是默认样式规定的,不是浏览器的内核规定的. 没有设置block的元素, ...
- myeclipse中自己手动配置maven
第一步,配置myeclipse的jdk,因为myeclipse默认的是运行在jre之上,而maven是在jdk之上 第二步,配置maven: