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 ...
随机推荐
- Nginx 变量漫谈(四)
在设置了“取处理程序”的情况下,Nginx 变量也可以选择将其值容器用作缓存,这样在多次读取变量的时候,就只需要调用“取处理程序”计算一次.我们下面就来看一个这样的例子: map $args ...
- python学习day3
目录: 1.集合set 2.计数器 3.有序字典 4.默认字典 5.可命名元组 6.队列 7.深浅拷贝 8.函数 9.lambda表达式 10.内置函数 一.集合set set是一个无序且不重复的元素 ...
- 通过HOOK控制进程的创建
一. 简介 最近,我了解到一个叫做Sanctuary的相当有趣的安全产品.它能够阻止任何程序的运行-这些程序没有显示在软件列表中-该表中的程序被允许在一个特定的机器上运行.结果,PC用户得到保护而免于 ...
- 数据挖掘之分类算法---knn算法(有matlab例子)
knn算法(k-Nearest Neighbor algorithm).是一种经典的分类算法.注意,不是聚类算法.所以这种分类算法 必然包括了训练过程. 然而和一般性的分类算法不同,knn算法是一种懒 ...
- 一个关于JTabel的DefaultCellEditor渲染很棒的例子
import java.awt.Color; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; imp ...
- 11gR2 RAC启用iptables导致节点宕机问题处理
通常,在安装数据库时,绝大多数都是要求把selinux及iptables关闭,然后再进行安装的.但是在运营商的系统中,很多安全的因素,需要将现网的数据库主机上的iptables开启的. 在开启ipta ...
- iOS 四种延时的方法
- (void)initBlock{ //延时的方法 //1:GCD延时 此方式在能够在參数中选择运行的线程. 是一种非堵塞的运行方式,没有找到取消运行的方法. double ...
- OS Kernel Parameter.semopm
安装Oracle11g内核参数semopm未校验通过,点击Fix&Check Again后,会提示执行修改脚本,在/tmp/CVU_11.2.0.1.0_oracle下,找到并执行该脚本run ...
- orapwd创建密码文件
在CMD里输入命令如下:C:\Documents and Settings\Administrator>orapwd Usage: orapwd file=<fname> passw ...
- GetBuffer与ReleaseBuffer的用法,CString剖析
转载: http://blog.pfan.cn/xman/43212.html GetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象 ...