Time Limit: 1000 MS    Memory Limit: 32768 KB
Total Submission(s): 920    Accepted Submission(s): 378

Description

无聊的陶陶准备编写一款游戏,名字就叫做“马踏飞燕”,在这款游戏中有个一个100*100的坐标,把马放在任意一个坐标点,再把燕子放在任意一个坐标点,并且燕子不会移动,马只能按照象棋规则走“日”。若4步之内能“踏”到燕子,则成功。笨蛋的陶陶不知道该怎么去写,现在请你帮助他。
走“日”说明:当马的坐标为(5,5)的时候,马下一步可以走的坐标有8个点,分别为(4,3)(6,3)(3,4)(7,4)(3,6)(7,6)(4,7)(6,7)

Input

第一行两个整数,马的起始坐标x,y (0<x,y<100)
第一行两个整数,燕子的坐标m,n (0<m,n<100)

Output

若4步之内能“踏”到燕子,则输出“Y”
若4步之内不能“踏”到燕子,则输出“N”

Sample Input

5 5
7 4

Sample Output

Y

Source

SDNU ACM-ICPC 2011复赛(2010级)

key:用的dfs

#include <bits/stdc++.h>using namespace std ;
const int N = 2008 ;
const int dx[8] = {-2 , -2 ,-1 , -1 , 1 , 1 , 2 , 2} ;
const int dy[8] = {-1 , 1 , -2 , 2 , -2 , 2 , 1 ,-1} ; int sx=0 , sy=0 , ex=0 , ey=0 ;
bool flag = false ;
bool vis[N][N] ; bool judge(int x , int y)//不能出去了
{if(x < 1 || x > 2000 || y < 1  || y > 2000) return false ; return true ;
}void dfs(int x , int y, int cnt)//全排列
{   if(cnt > 200) return ; if(x == ex && y == ey) {flag = true ; return ; }for(int i = 0 ; i < 8 ; i ++){int tx = x + dx[i] ; int ty = y + dy[i] ; if(judge(tx , ty) && !vis[tx][ty])//1.判断为真;2.不是vis ,没有标记过 {vis[tx][ty] = true ; //开了 dfs(tx , ty , cnt + 1) ; //递归设置 vis[tx][ty] = false ; //再关 }}
}int main()
{cin >> sx >> sy ; cin >> ex >> ey ;    dfs(sx , sy , 0) ; if(flag) puts("Y") ;else puts("N") ; return 0 ;
}

SDNUOJ 1025.马踏飞燕相关推荐

  1. SDNUOJ 1025.马踏飞燕(DFS||BFS))

    Time Limit: 1000 MS Memory Limit: 32768 KB Description 无聊的陶陶准备编写一款游戏,名字就叫做"马踏飞燕",在这款游戏中有个一 ...

  2. SDNU 1025 马踏飞燕 DFS

    搜了哈发现都在用bfs在做 然而我不会bfs 所以发一哈dfs的代码 虽然马踏飞燕加强版1027是没法用dfs做的23333 #include<cstdio> #include<io ...

  3. SDNU OJ 1025 马踏飞燕

    该题是一道使用BFS(广度优先搜索)的经典题目(当然如果你不怕麻烦,DFS也是可以的), 思路很简单,用queue存下各个情况每次都判断是否踏到燕子,并且记得记录深度. Description 无聊的 ...

  4. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

    PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)   http://www.patest.cn/contests/pat-b-practise/1025 ...

  5. hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1025 View Code 1 #include <iostream> 2 #include&l ...

  6. PAT 1025 反转链表 (25)(STL-map+思路+测试点分析)

    1025 反转链表 (25)(25 分) 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4, ...

  7. PAT甲级1025 PAT Ranking:[C++题解]排序、结构体、排名

    文章目录 题目分析 题目链接 题目分析 一个区域排名和一个总排名.启发我们每个同学的数据存两份,一个存在区域数组中,另一个存在整体数组中. 有序列表中排名怎么求呢? 比如序列 得分:99 98 98 ...

  8. HDU 1025 Constructing Roads In JGShining's Kingdom(DP+二分)

    点我看题目 题意 :两条平行线上分别有两种城市的生存,一条线上是贫穷城市,他们每一座城市都刚好只缺乏一种物资,而另一条线上是富有城市,他们每一座城市刚好只富有一种物资,所以要从富有城市出口到贫穷城市, ...

  9. 1025. 反转链表 (25)

    1025. 反转链表 (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个常数K以及一个单链表L,请 ...

最新文章

  1. Luogu 2827 [NOIP2016] 蚯蚓
  2. 数学好的男生适合学计算机吗,数学好的男生适合读什么专业 2021前景好吗
  3. SGU 248. Integer Linear Programming( 背包dp )
  4. 如何优雅地关闭Kubernetes集群中的Pod
  5. 速芯科技完成1亿元人民币融资
  6. 十动然鱼!《闲鱼年会经济数据》来了:卖得最快的奖品还是它
  7. java文件复制(可过滤)
  8. 跳打开hdu 1208 (DP)
  9. d语言 c++ 混合编程,C++,D语言,Python语言一次模拟合作开发
  10. 指定init启动Linux内核,初看linux内核启动过程
  11. 汇编程序:成绩分段统计
  12. 梦断代码-读书笔记一
  13. Win10如何配置数据源ODBC数据源
  14. Vijos P1423 最佳路线
  15. 华为ENSP的Stelnet、直连、串口连接、telnet连接登录
  16. CSAPP第七章家庭作业参考答案
  17. nosqlbooster 延长试用日期
  18. 数据分析报告怎么写(二)
  19. 测绘人真实故事 | 放弃上万月薪从私企跳回国企
  20. 思维方式-《金字塔原理》书中的精髓:如何利用金字塔原理,逻辑清晰地思考问题、表达观点。

热门文章

  1. Linux内核配置(三) :电源,总线配置
  2. 程序员述职报告范文_程序员年终的工作总结范文
  3. 关于JSP的一些感悟和心得
  4. c语言单源最短路径问题实验报告,数据结构课程设计最短路径问题实验报告-20210320182652.docx-原创力文档...
  5. 3-10DNS子域授权
  6. c语言的erase函数,[转] C++ STL中map.erase(it++)用法原理解析
  7. 机器人学习--基于3D激光雷达数据的MCL全局定位
  8. Ubuntu20.04软件安装大全
  9. 软件定义网络笔记(PART 1)
  10. Web 前端开发1+X认证中级理论考试样题