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. 转载.怎样在Quartus II中转化HDL文件为bsf文件?

    步骤1 新建或打开Quartus II工程,用QII自带文本编辑器打开HDL文件. 图1 用QII自带的文本编辑器打开HDL文件 步骤2 选择File>Create / Update>Cr ...

  2. 关于 webpack-dev-server 热更新出现重复的问题

    关于 webpack-dev-server 热更新出现重复的问题 webpack-dev-server 在前端开发时很方便,可以热更新,只需要配置 webpack.config.js 即可. 但是昨天 ...

  3. poj 3046 Ant Counting——多重集合的背包

    题目:http://poj.org/problem?id=3046 多重集合的背包问题. 1.式子:考虑dp[ i ][ j ]能从dp[ i-1 ][ k ](max(0 , j - c[ i ] ...

  4. 避免Android内存泄露

    摘自:http://blog.csdn.net/xyz_lmn/article/details/7108011 Android的应用被限制为最多占用16m的内存,至少在T-Mobile G1上是这样的 ...

  5. SourceTree使用介绍

    SourceTree比命令行更容易操作,能更直观看到发生了什么.但是没有哪一家git图形化软件能完成git的所有操作,封装后的使用也隐藏了git的一些细节,在图形化工具出现一些非常罕见的情况时,还是需 ...

  6. 【转】Jmeter安装成功后的目录介绍

    1.bin目录 Jmeter.bat  打开Jmeter主界面 Jmeter使用的日志文件名称被定义到Jmeter.properties中,默认在Jmeter.log可查看日志 2.dosc和prin ...

  7. java代码如何替换字符

    package com.aa; public class Ss { public static void main(String[] args) { String a = "ABCD&quo ...

  8. 常用hash算法及评测[转]

    RS hash 算法 unsigned int RSHash(char* str, unsigned int len) {     unsigned int b    = 378551;     un ...

  9. 文化之旅(dijstra)

    2012_p4 文化之旅 (culture.cpp/c/pas) 时间限制: 1 Sec  内存限制: 128 MB提交: 43  解决: 16[提交][状态][讨论版][命题人:外部导入] 题目描述 ...

  10. maven学习1

     1.Maven的约定 src/main/java: 存放项目的java文件. src/main/resources: 存放项目的资源文件,如spring,hibernate的配置文件. src/te ...