题意:
     给你一个n*n的图,给你驴和老虎的初始坐标和方向,已知他们的速度相同,他们走动的时候都是走直线,如果不能走,驴往右拐,老虎往左拐,如果拐了一次还走不了就原地不动,问他们的最早相遇位置。

思路:

     直接模拟就行了,我用的是搜索模拟的,不搜索也一样,把他们到达每个格子的时间都记录下来,如果相等或者是A比B大,但是B已经到达终点了,就算相遇,记录的时候记得是要最早的那次相遇就行了。


#include<stdio.h>
#include<string.h>#define N 1100 + 5

int map_A[N][N] ,map_B[N][N];
int x1 ,y1 ,x2 ,y2 ,n;
int dir[4][2] = {0 ,1 ,1 ,0 ,0 ,-1 ,-1 ,0};
bool ok_A(int x ,int y)
{if(x <= n && x >= 1 && y <= n && y >= 1 && !map_A[x][y]){x1 = x ,y1 = y;return 1;}return 0;
}bool ok_B(int x ,int y)
{if(x <= n && x >= 1 && y <= n && y >= 1 && !map_B[x][y]){x2 = x ,y2 = y;return 1;}return 0;
}void Dfs_A(int x ,int y ,int t ,int fx)
{int nowx = x + dir[fx][0];int nowy = y + dir[fx][1];while(ok_A(nowx ,nowy)){map_A[nowx][nowy] = ++t;nowx += dir[fx][0];nowy += dir[fx][1];}nowx -= dir[fx][0];nowy -= dir[fx][1];  nowx += dir[(fx+1)%4][0];nowy += dir[(fx+1)%4][1];if(ok_A(nowx ,nowy)){   map_A[nowx][nowy] = ++t;Dfs_A(nowx ,nowy ,t ,(fx+1)%4);}
} void Dfs_B(int x ,int y ,int t ,int fx)
{int nowx = x + dir[fx][0];int nowy = y + dir[fx][1];while(ok_B(nowx ,nowy)){map_B[nowx][nowy] = ++t;nowx += dir[fx][0];nowy += dir[fx][1];}nowx -= dir[fx][0];nowy -= dir[fx][1];nowx += dir[(fx-1+4)%4][0];nowy += dir[(fx-1+4)%4][1];if(ok_B(nowx ,nowy)){map_B[nowx][nowy] = ++t;Dfs_B(nowx ,nowy ,t ,(fx-1+4)%4);}
} int main ()
{int x11 ,y11 ,d11 ,x22 ,y22 ,d22 ,i ,j;while(~scanf("%d" ,&n) && n){scanf("%d %d %d" ,&x11 ,&y11 ,&d11);scanf("%d %d %d" ,&x22 ,&y22 ,&d22);x11 ++ ,y11 ++ ,x22 ++ ,y22 ++;memset(map_A ,0 ,sizeof(map_A));memset(map_B ,0 ,sizeof(map_B));map_A[x11][y11] = 1;x1 = x11 ,y1 = y11;Dfs_A(x11 ,y11 ,1 ,d11);map_B[x22][y22] = 1;x2 = x22 ,y2 = y22;Dfs_B(x22 ,y22 ,1 ,d22);int mk = 0 ,ii ,jj;          for(i = 1 ;i <= n;i ++)for(j = 1 ;j <= n;j ++){if(!map_A[i][j] || !map_B[i][j])continue;if(map_A[i][j] == map_B[i][j]) {if(!mk || mk > map_A[i][j]){ii = i ,jj = j ,mk = map_A[i][j];}}if(map_A[i][j] > map_B[i][j] && i == x2 && j == y2){if(!mk || mk > map_A[i][j]){ii = i ,jj = j ,mk = map_A[i][j];}}if(map_A[i][j] < map_B[i][j] && i == x1 && j == y1){if(!mk || mk > map_B[i][j]){ii = i ,jj = j ,mk = map_B[i][j];}}}if(mk) printf("%d %d\n" ,ii - 1,jj - 1);else printf("-1\n");}return 0;
}

hdu4740 不错的简单搜索相关推荐

  1. 和我一起打造个简单搜索之SpringDataElasticSearch入门

    网上大多通过 java 操作 es 使用的都是 TransportClient,而介绍使用 SpringDataElasticSearch 的文章相对比较少,笔者也是摸索了许久,接下来本文介绍 Spr ...

  2. BFS简单搜索--POJ 2243

    这题就是简单的BFS搜索,刚刚转到C++,还有很多库函数不熟悉,理解到BFS是一种奇妙的迭代法,其用的主要是队列的性质. 1 /*BFS简单搜索*/ 2 #include<iostream> ...

  3. alook浏览器哪个好 夸克浏览器_简单搜索、X浏览器、夸克浏览器、Via极简移动浏览器,到底哪个最好用?...

    1. X浏览器 用过的都说X浏览器的广告拦截很强悍 大小:0.8M,无开屏页,只有安卓版本. 用过 Chrome 的 都说X浏览器是好的备胎. 无新闻,无推送,无后台,不足1M却小而强大,给你淋漓尽致 ...

  4. 李彦宏:简单搜索永远没有广告;安全是自动驾驶第一天条

    图片来源:新华网 在26日下午举办的2018数博会"人工智能:AI 生态加速未来"论坛中,百度董事长兼CEO李彦宏.中国科学院院士张钹.微软全球资深副总裁王永东等嘉宾分别发表了关于 ...

  5. java 搜索引擎 关键词高亮_和我一起打造个简单搜索之SpringDataElasticSearch关键词高亮(示例代码)...

    前面几篇文章详细讲解了 ElasticSearch 的搭建以及使用 SpringDataElasticSearch 来完成搜索查询,但是搜索一般都会有搜索关键字高亮的功能,今天我们把它给加上. 系列文 ...

  6. 夸克、QQ浏览器、简单搜索竞品分析报告

    作者:迷航 (转载已取得作者授权) 一.竞品分析目的 伴随着中国移动互联网的人口红利逐渐到顶,手机浏览器市场的马太效应也越发强烈.在激烈的竞争环境下,仍有新价值要素正在带来新的机会:Z时代.00后用户 ...

  7. python discuz搜索api_Django用内置方法实现简单搜索功能的方法

    Model中分别提供了filter方法和icontains方法实现简单的搜索功能. html页面中实现搜索框 模板api_test_manage.html中增加以下内容 {% csrf_token % ...

  8. POJ 1321-棋盘问题-简单搜索DFS

    POJ 1321-棋盘问题-简单搜索DFS Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编 ...

  9. HDU 1240 Asteroids!(DFS简单搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1240 Asteroids! Time Limit: 2000/1000 MS (Java/Others ...

最新文章

  1. Linux 系统故障分析与排查
  2. 深入理解SERDES接口
  3. 微信扫码支付模式二【无法回调】解决方案
  4. FD.io/VPP — DNS Plugin
  5. 软件测试人员用python_【答知友问】软件测试人员能用python做哪些事情?
  6. 阿里云 Ubuntu16.04 部署 LAMP
  7. java基础(一):谈谈java内存管理与垃圾回收机制
  8. Python语言学习:python语言的特点、入门、基础用法之详细攻略
  9. Scala运算符的优先级
  10. BZOJ 1012: [JSOI2008]最大数maxnumber
  11. Vue Router 4.0 正式发布!焕然一新。
  12. ArcGIS实验教程——实验二十三:专题地图制作完整实验步骤
  13. Win10怎么改网络服务器账号,win10系统设置网络的方法图解步骤
  14. 中移4G模块-ML302-OpenCpu开发-PCF8591测量电压
  15. jbpm与OA项目开发过程实录 (二)
  16. matlab 矩阵逻辑与,MATLAB自学笔记(七):数组运算与矩阵操作
  17. 用虚拟串口进行串口调试
  18. 在windows平台上编写的python程序无法在_【判断题】在Windows平台上编写的Python程序无法在Unix平台运行。...
  19. WAREZ无形帝国(盗版之源)
  20. java调用Shell脚本

热门文章

  1. 深度操作系统 15 Beta——每一处都在“靓”变
  2. VIM编辑器使用技巧
  3. 敏捷项目管理—敏捷四宣言
  4. 对于python 3.x与python2.x中新型类的继承特性总结
  5. 字符串去掉空格 trim()方法
  6. opencv7-ml之svm
  7. 2014百度之星资格赛 1001:Energy Conversion(水题,逻辑题)
  8. websocket在.net4.5中实现的简单demo
  9. 在指定的查找范围内获取DOM元素
  10. Jmeter-接口测试相关