点此看题面

大致题意: 给你一张\(n*m\)的棋盘,问你一匹马在两个点中是否存在一条经过黑白格子数目相等的路径。

简化题目

首先,我们来简化一下题目。

考虑到马每次走的时候,所经过的格子的颜色必然发生变化,因此黑白格子数目相等这个条件就变成了起点和终点颜色是否相同。

当颜色相同时,我们就可以直接输出\(No\)了。

而接下来的问题就变成了:一匹马是否能从一个点到达另一个点。

在此之前,我们先默认\(n\le m\)(不满足条件\(swap\)即可)。

当\(n=1\)时

此时,马完全无法移动,因此直接输出\(No\)。

当\(n=2\)时

此时,马每次必然只能从某一行跳至另外一行。

先考虑起点与终点在同一行的情况,这肯定是不合法的。

因为马每次会跳至另一行,所以需偶数次才能保持在同一行。

而这样一来起点与终点颜色必然一样,在前面就已经被判掉了,无须再讨论。

那么只需考虑起点与终点不在同一行的情况。

简单画图可得,若合法,则此时起点与终点纵坐标在模\(4\)之后差值绝对值必然为\(2\)。

因此,对于\(n=2\)的情况,判断起点与终点纵坐标在模\(4\)之后差值绝对值是否为\(2\)即可得出答案。

当\(n=m=3\)时

通过简单画图,可以发现,周围一圈的马,无论如何都跳不到中间\((2,2)\)这一格子上。

同理,\((2,2)\)这一格子上的马也跳不到周围一圈的格子上。

所以,只需判断起点与终点是否存在某一个为\((2,2)\)即可。

其余情况

必定有解,输出\(Yes\)。

代码

#include<bits/stdc++.h>
#define Tp template<typename Ty>
#define Ts template<typename Ty,typename... Ar>
#define Reg register
#define RI Reg int
#define Con const
#define CI Con int&
#define I inline
#define W while
#define swap(x,y) (x^=y^=x^=y)
#define abs(x) ((x)<0?-(x):(x))
using namespace std;
int n,m,sx,sy,ex,ey;
int main()
{
if(scanf("%d%d%d%d%d%d",&n,&m,&sx,&sy,&ex,&ey),((sx^sy)&1)==((ex^ey)&1)) return puts("No"),0;//若同色,输出No
if(n>m&&(swap(n,m),swap(sx,sy),swap(ex,ey)),n==1) return puts("No"),0;//若n=1,输出No
if(n==2&&abs(sy%4-ey%4)^2) return puts("No"),0;//若起点与终点纵坐标差值的绝对值在模4之后不为2,输出No
if(n==3&&m==3&&((sx==2&&sy==2)||(ex==2&&ey==2))) return puts("No"),0;//若n=m=3且起点与终点存在某一个为(2,2),输出No
return puts("Yes"),0;//其余情况输出Yes
}

【CCPC-Wannafly Winter Camp Day4 (Div1) F】小小马(分类讨论)的更多相关文章

  1. 2020 CCPC Wannafly Winter Camp Day1 C. 染色图

    2020 CCPC Wannafly Winter Camp Day1 C. 染色图 定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任 ...

  2. 2020 CCPC Wannafly Winter Camp Day1 Div.1&amp F

    #include<bits/stdc++.h> #define forn(i, n) for (int i = 0; i < int(n); i++) #define fore(i, ...

  3. 【CCPC-Wannafly Winter Camp Day4 (Div1) G】置置置换(动态规划)

    点此看题面 大致题意: 求出有多少个长度为\(n\)的排列满足对于奇数位\(a_{i-1}<a_i\),对于偶数位\(a_{i-1}>a_i\). 考虑打表? 考虑每次只有一个数\(n\) ...

  4. 【CCPC-Wannafly Winter Camp Day4 (Div1) A】夺宝奇兵(水题)

    点此看题面 大致题意: 有\(n\)种宝藏,每种各两个.让你依次获得\(1\sim n\)号宝藏,然后依次获得剩余的\(n\sim1\)号宝藏,求最少步数. 简单结论 其实这题有一个十分简单的结论,即 ...

  5. 【CCPC-Wannafly Winter Camp Day4 (Div1) C】最小边覆盖(简单题)

    点此看题面 大致题意: 给你一个边集的子集,问你这可不可能是这张图的最小边覆盖. 大致思路 考虑到,如果一条边连接的两个点度数都大于等于\(2\),则这条边完全可以删去. 因此,我们只要判断是否存在这 ...

  6. 【CCPC-Wannafly Winter Camp Day4 (Div1) I】咆咆咆哮(三分+贪心)

    点此看题面 大致题意: 有\(n\)张卡牌,每张卡牌有两种用法:使场上增加一个伤害为\(a_i\)的生物,或使场上所有生物伤害增加\(b_i\).求最大总伤害. 三分 我们可以三分使用\(a_i\)的 ...

  7. 【CCPC-Wannafly Winter Camp Day4 (Div1) J】跑跑跑路(爬山)

    点此看题面 大致题意: 共两轮,每轮每人有一个标签,标签相同的人必须到同一个点集合.求所有人总路程的最小值. 爬山算法 这道题貌似有三种做法:模拟退火.高斯消元以及爬山算法. 相比之下,自然是爬山算法 ...

  8. CCPC Wannafly Winter Camp Div2 部分题解

    Day 1, Div 2, Prob. B - 吃豆豆 题目大意 wls有一个\(n\)行\(m\)列的棋盘,对于第\(i\)行第\(j\)列的格子,每过\(T[i][j]\)秒会在上面出现一个糖果, ...

  9. Wannafly Winter Camp Day8(Div1,onsite) E题 Souls-like Game 线段树 矩阵乘法

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog @ Problem:传送门  Portal  原题目描述在最下面.  简单的 ...

随机推荐

  1. ScheduledThreadPoolDemo01

    package com.zhy.concurrency.timer; import java.util.Date; import java.util.Timer; import java.util.T ...

  2. SpringMVC DeferedResult和servlet3.1 AsyncContext异步请求

    先看一个简单的示例: @RequestMapping("/getFuture") public Future<String> getFuture() { System. ...

  3. STL之 sort排序与检索(2019.1.18)

    1.作用对象:数组  a[n] 头文件:#include<algorithm> 内容:sort(a,a+n) 功能:进行升序排序 内容:lower_bound(a,a+n,x) 功能:找到 ...

  4. my.答题

    20170821增加: http://www.119you.com/mhxy/yxgl/738653.shtml 1.三界奇缘 http://my.netease.com/forum.php?mod= ...

  5. Linux配置SSH免密码登录

    CentOS配置SSH免密码登录为例说明:SSH远程登录的安全外壳协议有两种身份认证机制: - 用户名+密码 -密钥登录 环境准备 host1:192.168.0.10host2:192.168.0. ...

  6. 垃圾收集GC

    一.引用计数法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0的对象就是不能再被使用的.引用计数法实现简单,判定效率也很高,但是它很 ...

  7. tomcat入门(一)几种常见的使用tomcat部署项目的方式

    1.常规方式部署 直接把web项目复制到tomcat安装目录下的%Tomcat_Home%/webapps/{web项目} 2.使用控制台进行部署 若一个web应用结构为D:\workspace\We ...

  8. inventor安装失败怎样卸载安装inventor 2014?

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  9. [转]jQuery AJAX pagination plugin with ASP.NET Server Side

    本文转自:http://do-web.com/jpaging/usage How does it work? 1. In order to implement the plugin, you need ...

  10. (转) IP子网划分

    原文:http://blog.csdn.net/birdie_l/article/details/77994610  子网划分公式计算法 实例一 实例二 心算思路总结: B类公式算法举例: 总结:此表 ...