1.扯犊子超多if else 判断的代码,华丽丽的TLE。

#include<stdio.h>
#include<string.h>
#define N 1010
int map[N][N];
int f[][]= {,,,,,-,-,};
struct Node
{
int x,y;
int f;
};
int main()
{
int n;
Node tig,don;
while(scanf("%d",&n)!=EOF&&n)
{
memset(map,,sizeof(map));
scanf("%d %d %d",&don.x,&don.y,&don.f);
map[don.x][don.y]=-;
scanf("%d %d %d",&tig.x,&tig.y,&tig.f);
map[tig.x][tig.y]=-;
int flag1=,flag2=;
while(flag1||flag2)
{
//printf("#%d %d\n",don.x,don.y);
//printf("$%d %d\n",tig.x,tig.y);
if(don.x==tig.x&&don.y==tig.y)
{
printf("%d %d\n",don.x,don.y);
break;
}
if(flag1)
{
int x=don.x+f[don.f][];
int y=don.y+f[don.f][];
//printf("$%d %d\n",x,y);
if(x>=&&x<n&&y>=&&y<n&&map[x][y]!=-&&map[x][y]!=-)
{
//printf("sdafj\n");
don.x=x;
don.y=y;
}
else if(y>=n)
{
x+=;
if(x>=&&x<n&&map[x][don.y]!=-&&map[x][don.y]!=-)don.x=x;
else flag1=;
don.f=;
}
else if(x<)
{
y+=;
if(y>=&&y<n&&map[don.x][y]!=-&&map[don.x][y]!=-)don.y=y;
else flag1=;
don.f=;
}
else if(y<)
{
x-=;
if(x>=&&x<n&&map[x][don.y]!=-&&map[x][don.y]!=-)don.x=x;
else flag1=;
don.f=;
}
else if(x>=n)
{
y-=;
if(y>=&&y<n&&map[don.x][y]!=-&&map[don.x][y]!=-)don.y=y;
else flag1=;
don.f=;
}
//else flag1=0;
if(!map[don.x][don.y])map[don.x][don.y]=-;
else if(map[don.x][don.x]==-)map[don.x][don.y]=-;
}
if(flag2)
{
int x=tig.x+f[tig.f][];
int y=tig.y+f[tig.f][];
//printf();
if(x>=&&x<n&&y>=&&y<n&&map[x][y]!=-&&map[x][y]!=-)
{
tig.x=x;
tig.y=y;
}
else if(y>=n)
{
x-=;
if(x>=&&x<n&&map[x][tig.y]!=-&&map[x][tig.y]!=-)tig.x=x;
else flag2=;
tig.f=;
}
else if(x<)
{
y-=;
if(y>=&&y<n&&map[tig.x][y]!=-&&map[tig.x][y]!=-)tig.y=y;
else flag2=;
tig.f=;
}
else if(y<)
{
x+=;
if(x>=&&x<n&&map[x][tig.y]!=-&&map[x][tig.y]!=-)tig.x=x;
else flag2=;
tig.f=;
}
else if(x>=n)
{
y+=;
if(y>=&&y<n&&map[tig.x][y]!=-&&map[tig.x][y]!=-)tig.y=y;
else flag2=;
tig.f=;
}
//else flag2=0;
if(!map[tig.x][tig.y])map[tig.x][tig.y]=-;
else if(map[tig.x][tig.y]==-)map[tig.x][tig.y]=-;
}
} if(!flag1&&!flag2)printf("-1\n");
}
return ;
}

2.思路:

1.如果donkey和tiger能按指定路线行走,判断是否同时到达同意地点

2.如果不能继续行走(遇到自己以前走过的或墙壁),则转弯。

donkey向右转,tiger向左转,转后仍不能前进,则停下。

3.一个停下,另一个可以继续,直到都停下或同时到达同意地点。

不知道哪里错了(WA)

#include<stdio.h>
#include<string.h>
#define N 1100
int map[N][N];
int f[][]= {,,,,,-,-,};
struct Node
{
int x,y;
int f;
};
int main()
{
int n; while(scanf("%d",&n)!=EOF&&n)
{
Node tig,don;
memset(map,,sizeof(map));
scanf("%d %d %d",&don.x,&don.y,&don.f);
map[don.x][don.y]=-;
scanf("%d %d %d",&tig.x,&tig.y,&tig.f);
map[tig.x][tig.y]=-;
int flag1=,flag2=;
while(flag1||flag2)
{
//printf("#%d %d\n",don.x,don.y);
//printf("$%d %d\n",tig.x,tig.y);
if(don.x==tig.x&&don.y==tig.y)
{
printf("%d %d\n",don.x,don.y);
break;
}
if(flag1)
{
int x=don.x+f[don.f][];
int y=don.y+f[don.f][];
//printf("$%d %d\n",x,y);
if(x>=&&x<n&&y>=&&y<n&&map[x][y]!=-&&map[x][y]!=-)
{
//printf("sdafj\n");
don.x=x;
don.y=y;
}
else//换方向
{
if(don.f==)
don.f=;
else
don.f++;
x=don.x+f[don.f][];
y=don.y+f[don.f][];
if(x>=&&x<n&&y>=&&y<n&&map[x][y]!=-&&map[x][y]!=-)
{
don.x=x;
don.y=y;
}
else flag1=;
}
if(flag1)
if(!map[don.x][don.y])map[don.x][don.y]=-;
else if(map[don.x][don.x]==-)map[don.x][don.y]=-;
}
if(flag2)
{
int x=tig.x+f[tig.f][];
int y=tig.y+f[tig.f][];
//printf();
if(x>=&&x<n&&y>=&&y<n&&map[x][y]!=-&&map[x][y]!=-)
{
tig.x=x;
tig.y=y;
}
else
{
if(!tig.f)
tig.f=;
else tig.f--;
x=tig.x+f[tig.f][];
y=tig.y+f[tig.f][];
if(x>=&&x<n&&y>=&&y<n&&map[x][y]!=-&&map[x][y]!=-)
{
tig.x=x;
tig.y=y;
}
else flag2=;
}
if(flag2)
if(!map[tig.x][tig.y])map[tig.x][tig.y]=-;
else if(map[tig.x][tig.y]==-)map[tig.x][tig.y]=-;
}
}
if(!flag1&&!flag2)printf("-1\n");
}
return ;
}

hdu 4740 The Donkey of Gui Zhou的更多相关文章

  1. 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 ...

  2. 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 ...

  3. hdu 4740 The Donkey of Gui Zhou(暴力搜索)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4740 [题意]: 森林里有一只驴和一只老虎,驴和老虎互相从来都没有见过,各自自己走过的地方不能走第二次 ...

  4. HDU 4740 The Donkey of Gui Zhou (模拟)

    由于一开始考虑的很不周到,找到很多bug.....越改越长,不忍直视. 不是写模拟的料...................... 反正撞墙或者碰到已经走过的点就会转向,转向后还碰到这两种情况就会傻站 ...

  5. The Donkey of Gui Zhou

    Problem Description There was no donkey in the province of Gui Zhou, China. A trouble maker shipped ...

  6. hdu 4740【模拟+深搜】.cpp

    题意: 给出老虎的起始点.方向和驴的起始点.方向.. 规定老虎和驴都不会走自己走过的方格,并且当没路走的时候,驴会右转,老虎会左转.. 当转了一次还没路走就会停下来.. 问他们有没有可能在某一格相遇. ...

  7. hdu 4740

    题目链接 老虎左拐,老鼠右拐,碰到不能走的拐一次,如果还不能走就停下,自己走过的不能走,求相遇的坐标或-1 一个停下之后,另一个还可以走 #include <cstdio> #includ ...

  8. HDU 4740 模拟题意

    九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11711743 题意:驴和老虎在方格中跑,跑的方式:径直跑,若遇到边界或之前走过的 ...

  9. 2013杭州网络赛C题HDU 4640(模拟)

    The Donkey of Gui Zhou Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

随机推荐

  1. BZOJ5337 [TJOI2018]str

    题意 小豆参加了生物实验室.在实验室里,他主要研究蛋臼质.他现在研究的蛋臼质是由k个氨基酸按一定顺序构成的.每一个氨基酸都可能有a种碱基序 列si_j 构成.现在小豆有一个碱基串s,小豆想知道在这个碱 ...

  2. rmmod: can't change directory to '/lib/modules': No such file or directory

    [root@iTOP-4412]# mount /dev/sda1 /mnt/udisk/ [root@iTOP-4412]# insmod /mnt/udisk/linux/hello.ko  [ ...

  3. 详细的nginx.conf中文资料整理

    整理来源: https://blog.csdn.net/tjcyjd/article/details/50695922 整理结果 Nginx的配置文件nginx.conf配置详解如下: #Nginx用 ...

  4. 你知道PING功能是怎么实现的吗

    以太网的协议有层,而每层都包含有更多的协议.所谓协议,通俗的讲就是通信双方约定的规则. 今天我们介绍一些一个听起来陌生却有很常用的协议,ICMP协议. —ICMP是(Internet Control ...

  5. module_param 用于动态开启/关闭 驱动打印信息

    1.定义模块参数的方法: module_param(name, type, perm); 其中,name:表示参数的名字;      type:表示参数的类型;      perm:表示参数的访问权限 ...

  6. 关于 NULL的坑

    有如下的表: select * from testtable where name in ('name'):  结果是第一条: select * from testtable where name n ...

  7. STM32使用printf丢失第一个字母的问题

    STM32使用printf函数给串口打印信息的执行步骤为: 1.重定向printf函数 给uart.c文件中增加如下函数: //重定向c库函数printf到USART1 int fputc(int c ...

  8. c#编写的基于TCP通信的微风IM 版本3 新年新UI

    电商商模 背景:来源,产生运营模式:模式特点,服务对象,业务开展,赢利点,扩 张点,定价策略行业分析:市场分析:DX,企业,政策,经济,文化,技术 网站架构:频道,版块,功能体系 项目推广:地面推广, ...

  9. oracle记录错误存储过程

    CREATE OR REPLACE PROCEDURE SP_ERROR_LOGS_PRO(v_pro_name VARCHAR2, v_step_name VARCHAR2, v_date VARC ...

  10. IDA Pro 权威指南学习笔记(七) - 其他 IDA 显示窗口

    默认情况下 IDA 不会打开这些窗口,可通过 View -> Open Subviews 命令打开 Strings 窗口(Strings) Strings 窗口中显示的是从二进制文件中提取出的一 ...