【NOIP 模拟赛】 道路
题目描述
在二维坐标平面里有 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 ;
}
【NOIP 模拟赛】 道路的更多相关文章
- noip模拟赛 道路分组
分析:因为每一组编号都是连续的嘛,所以能分成一组的尽量分,每次加边后dfs判断一下1和n是否连通.有向图的判连通没有什么很快的方法,特别注意,并查集是错的!这个算法可以得到60分. 事实上每一次都不需 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...
- 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...
- 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...
- CH Round #58 - OrzCC杯noip模拟赛day2
A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...
- CH Round #52 - Thinking Bear #1 (NOIP模拟赛)
A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...
随机推荐
- scanf()总结--从网上收来的,感觉很好,用来提醒自己,c语言真是博大精深!!【转】
转自:http://www.cnblogs.com/xiaocai905767378/archive/2011/06/01/2067526.html scanf杂谈 不得不说C语言真 ...
- 眉目传情之匠心独运的kfifo【转】
转自:http://blog.csdn.net/chen19870707/article/details/39899743 权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 一 ...
- llinux 定时器 转载自 http://blog.chinaunix.net/uid-11848011-id-96374.html
这篇文章主要记录我在试图解决如何尽可能精确地在某个特定的时间间隔执行某项具体任务时的思路历程,并在后期对相关的API进行的归纳和总结,以备参考. 问题引出 很多时候,我们会有类似“每隔多长时间执行某项 ...
- hdu 3189(网络流+二分枚举)
Steady Cow Assignment Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6422 Accepted: ...
- Delphi 之Copyrect的使用
http://cqujsjcyj.iteye.com/blog/380970 Copyrect的使用(图片复制.放大.以及做图片放大镜等)一.从一个选取一个区域中的图象到另一个图象组件中的固定区域pr ...
- WCF的学习之旅
一.WCF的简单介绍 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是MS为SOA (S ...
- vue框架及其
Vue常用UI框架 PC端: 1. ElementUI:http://element-cn.eleme.io/#/zh-CN 2. iView:https://www.iviewui.com/ 3. ...
- Go -- 接口赋值
在go语言中,接口赋值分为2中情况: 1.将对象实例赋值给接口: 2.将一个接口赋值给另一个接口. 1.将对象实例赋值给接口: 要求对象实现了接口的所有方法. 2.将接口赋值给另一个接口: 假设接口A ...
- Java反射之Field用法
在Java反射中Field用于获取某个类的属性或该属性的属性值 一:如何通过Field反射获取类的属性 Field提供如下几种方法: :1:Class.getDeclaredField(String ...
- linux 中两个文档怎么对比内容是否一致
可以用diff命令对比文档内容.[语法]: diff [参数] 文件1 文件2[说明]: 本命令比较两个文本文件,将不同的行列出来-b 将一串空格或TAB 转换成一个空格或TAB-e 生成一个编辑角本 ...