题目描述
在二维坐标平面里有 N 个整数点,信息班某一巨佬要访问这 N 个点。刚开始巨佬在点(0,0)处。 每一步,巨佬可以走到上、下、左、右四个点。即假设巨佬当前所在点的坐标是(x,y),那么它下一步可以移动到(x,y+1), (x,y-1), (x+1,y),(x-1,y)之一。
巨佬目标是找到一个移动序列,满足下面的条件:
1、从点(0,0)出发。
2、对于给定的那 N 个点,每个点至少被访问一次。
3、可以选择那 N 个给定点中任意一个作为结束点。
现在为了增加难度,巨佬的教练规定巨佬走过的所有步数之和的奇偶性必须为wantedParity,显然 wantedParity 是 0 或 1,是题目给定的, 0 表示偶, 1 表示奇。不过这依然难不到巨佬,但是............
巨佬临时有事,但是 ta 又不想受教练的批评,所以巨佬向你发出了求助(并且你不可拒绝)如果存在满足条件的移动序列,那么输出 CAN,否则输出 CANNOT。
多组测试数据。
第一行,一个整数 g,表示有 g 组测试数据,1 <= g <= 50。
输入格式
第 1 行,N、wantedParity。 1 <= N <= 3000。
接下来有 N 行,每行两个整数:x, y,表示第 i 个点的坐标值。
范围都在【-1000000,1000000】。输入的 N 个点不会有重叠,且不会有(0,
0)点。
输出格式
共 g 行,每行输出 CAN 或 CANNOT。
样例输入
5
40
-1 -1
-1 1
11
1 -1
31
-5 2
-3 0
23
21
1001 0
-4000 0
30
11 -20
21 42
07
21
0 10
6 -20
样例输出
CAN
CAN
CAN
CANNOT
CANNOT

Solution:

  这个题目一眼看上去很吊,还被大佬们故意放在最后一题,但是细想还是不难的。

  首先我们可以发现,一个点到另一个点的路径的奇偶性是不变的,如果不知道为什么的话,有一个快速的方法:如果它的奇偶性是可以改变的,那么答案肯定是CAN,因为只要任意改变一条路径的奇偶性就可以改变整条路的奇偶性,所以不会出现CANNOT的情况,这样一想,两点之间的路径的奇偶性一定是不会改变的。

  想到这一点,这个题目就很好做了,起点是(0,0),终点是n个点中任意一个,而两点之间路径的奇偶性又是确定的,所以判断(0,0)和n个点中每个点的距离的奇偶性,就可以知道有没有一条在n个点中结束的路径的长度的奇偶性与给出的wantedParity相同,然后这就是一个大水题了

贴代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
bool flag;
cin>>T;
for(int i=;i<=T;i++)
{
flag=;
int n,k;
cin>>n>>k;
for(int j=;j<=n;j++)
{
int x,y;
scanf("%d%d",&x,&y);
if(flag==)
if((abs(x)+abs(y))%==k) {flag=; cout<<"CAN"<<endl;}
}
if(flag==) cout<<"CANNOT"<<endl;
}
return ;
}

最新文章

  1. 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置
  2. Spring--多人开发
  3. python中单引号, 双引号,三引号的差异
  4. 倾情大奉送--Spark入门实战系列
  5. mysql主从配置(基于mysql5.5.x)
  6. BNUOJ 51279[组队活动 Large](cdq分治+FFT)
  7. java 调用 r, Can&#39;t find dependent libraries
  8. lightning mdb 源代码分析(2)
  9. 制作chm无搜索标签解决方法
  10. Oracle中的if...then...elsif
  11. Innodb 锁 (简单笔记)
  12. No1_8.类和对象2_Java学习笔记_对象
  13. const对象默认是static的,而不是extern的
  14. Uva 11300 Spreading the Wealth(递推,中位数)
  15. C语言博客作业5--指针
  16. Java中用Scanner扫描控制台输入时的一个小问题
  17. 【POJ3585】Accumulation Degree 二次扫描与换根法
  18. 单选按钮QRadioButton
  19. ansible1
  20. 分子量 (Molar Mass,ACM/ICPC Seoul 2005,UVa1586)

热门文章

  1. fork()函数的执行过程、孤儿进程和僵尸进程
  2. LeetCode OJ--Search Insert Position
  3. AC日记——[USACO07DEC]手链Charm Bracelet 洛谷 P2871
  4. vs2017秘钥
  5. pdf转word工具
  6. Codeforces Gym - 101147J Whistle&#39;s New Car
  7. Java 浅析,生成OFD文件
  8. Ext 上传文件
  9. ES6新语法学习
  10. 如何下载合适自己系统环境的Xdebug