【CodeForces - 764D】Timofey and rectangles (四色定理 + 找规律 + 构造)

题干:

One of Timofey's birthday presents is a colourbook in a shape of an infinite plane. On the plane n rectangles with sides parallel to coordinate axes are situated. All sides of the rectangles have odd length. Rectangles cannot intersect, but they can touch each other.

Help Timofey to color his rectangles in 4 different colors in such a way that every two rectangles touching each other by side would have different color, or determine that it is impossible.

Two rectangles intersect if their intersection has positive area. Two rectangles touch by sides if there is a pair of sides such that their intersection has non-zero length

 The picture corresponds to the first example

Input

The first line contains single integer n (1 ≤ n ≤ 5·105) — the number of rectangles.

n lines follow. The i-th of these lines contains four integers x1, y1, x2 and y2 ( - 109 ≤ x1 < x2 ≤ 109,  - 109 ≤ y1 < y2 ≤ 109), that means that points (x1, y1) and (x2, y2)are the coordinates of two opposite corners of the i-th rectangle.

It is guaranteed, that all sides of the rectangles have odd lengths and rectangles don't intersect each other.

Output

Print "NO" in the only line if it is impossible to color the rectangles in 4different colors in such a way that every two rectangles touching each other by side would have different color.

Otherwise, print "YES" in the first line. Then print n lines, in the i-th of them print single integer ci (1 ≤ ci ≤ 4) — the color of i-th rectangle.

Example

Input

8
0 0 5 3
2 -1 5 0
-3 -4 2 -1
-1 -1 2 0
-3 0 0 5
5 2 10 3
7 -3 10 2
4 -2 7 -1

Output

YES
1
2
2
3
2
2
4
1

题目大意:

    一个无限大的平面被分为无数个小正方形格子,一些相连的格子们可以组成矩形。给出左下角和右上角的坐标来表示该矩形(比如给出 0 0 5 3 即代表坐标为(0,0)开始到(5,3)之间的所有格子组成的矩形)。矩形的长和宽只能是奇数,给出一些矩形的坐标表示,要求写程序为所有的矩形染色,相邻的矩形不可染同种颜色(题中已经给出所有的矩形没有两两相交的情况出现,且相邻的条件为存在大于0长度的公共边),如果存在染色方案则输出YES并且输出N个矩形的每种染色情况(如果存在多种情况输出任意一种即可),如果不存在染色方案则输出NO结束。

解题报告:

思路描述: 由于我们已知任意一个地图都4可着色,因此第一行一定永远是"YES"。关于着色方案,我们重点关注所有的边均为奇数的条件。

由于所有的边均为奇数,那么对于两个相邻的矩形,我们考虑其左下角的坐标:设其为A (x1,y1)和B (x2,y2);

  当A与B水平相邻时,即如下图所示(黄色为A,蓝绿色为B,其中(x1,y1)以及(x2,y2)分别表示红色的点和蓝色的点):

  我们可以看出对于任意两个相邻的矩形,其必有(x1与x2)或(y1与y2)的奇偶性不一致(因为所有矩形边长均为奇数),由于我们有4种染色方案(设为1 2 3 4),因此我们可以构造其染色情况为

[(x%2+2*(y%2))+4]%4+1(其中x和y表示该矩形左下角坐标),即可保证相邻的矩形中没有同色的情况(因为该染色情况下同色当且仅当x与y的奇偶性一致)。

AC代码:

#include<iostream>
#include<cmath>
using namespace std;
int main() {int n, a, b, c, d;ios::sync_with_stdio(false);cin >> n;cout <<"YES"<<endl;while(n--) {cin>>a>>b>>c>>d;int tmp = abs(a) % 2 + 2 * (abs(b) % 2);cout << tmp + 1 << endl;}return 0;
}

总结:

[(x%2+2*(y%2))+4]%4+1这个公式也可以,这两种构造的方式虽然结果不同但是都符合题意。注意负数取模问题!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php整站防注入程序,一个不错的php通用防注入程序

代码如下:function jk1986_checksql(){$bad_str "and|select|update||delete|insert|*";$bad_Array explode("|",$bad_str);/** 过滤Get参数 **/foreach ($bad_Array as $bad_a){foreach ($_GET as $g){if (substr_count(strtolower($g),$bad_a) > 0)…

【HDU - 5056】Boring count (尺取法)

题干&#xff1a; You are given a string S consisting of lowercase letters, and your task is counting the number of substring that the number of each lowercase letter in the substring is no more than K. Input In the first line there is an integer T , ind…

java图片上传被旋转,在其他大牛那看到的java手机图片上传旋转问题的解决方法...

// 将图片文件转化为字节数组字符串&#xff0c;并对其进行Base64编码处理//Base64所用包&#xff1a;org.apache.commons.codec.binary.Base64public static String encodeImgageToBase64(File imageFile) {byte[] data null;// 读取图片字节数组try {InputStream in new Fi…

【qduoj】奇数阶幻方 (构造)

题干&#xff1a; C语言_魔方阵 描述 魔方阵是一个古老的智力问题&#xff0c;它要求在一个mm的矩阵中填入1&#xff5e;m2的数字&#xff08;m为奇数&#xff09;&#xff0c;使得每一行、每一列、每条对角线的累加和都相等&#xff0c;如下为5阶魔方阵示例。 15 8 1 24 17…

【牛客161 - A】字符串(尺取法,桶标记法)

题干&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 小N现在有一个字符串S。他把这这个字符串的所有子串都挑了出来。一个S的子串T是合法的&#xff0c;当且仅…

mysql innodb 全表锁,Mysql InnoDB行锁及表锁分享

一. 背景知识二. 步入正题&#xff1a;表锁和行锁1.1. 表锁 vs 行锁在 MySQL 中锁的种类有很多&#xff0c;但是最基本的还是表锁和行锁&#xff1a;表锁指的是对一整张表加锁&#xff0c;一般是 DDL 处理时使用&#xff0c;也可以自己在 SQL 中指定&#xff1b;而行锁指的是锁…

【牛客 - 185A】无序组数 (思维,数学,因子个数)

题干&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld 题目描述 给出一个二元组&#xff08;A,B&#xff09; 求出无序二元组&#xff08;a,b&#xff09; 使得&#x…

php万能查询用预,PHP 与 mysql

一、php 的 sql 注入攻击1.1、什么是 sql 注入攻击用户提交一段数据库查询代码&#xff0c;根据返回的结果&#xff0c;获得某些他想得到的数据。比如 &#xff1a;查询某个管理员是否存在&#xff0c;一般程序员会这么写$sql "select * from user where nameluluyii and…

php 判断radio选中哪个,jquery如何判断单选按钮radio是否选中

jquery判断单选按钮radio是否选中的方法&#xff1a;1、加载页面的时候获取id&#xff0c;代码为【var fs$("#"id).val()】&#xff1b;2、点击按钮的时候获取id&#xff0c;代码为【var id $(this).attr("id")】。本教程操作环境&#xff1a;windows7系统…

【qduoj】【超级楼梯进阶版】

题干&#xff1a; 描述 N级阶梯&#xff0c;人可以一步走一级&#xff0c;也可以一步走两级&#xff0c;求人从阶梯底端走到顶端可以有多少种不同的走法。 输入 一个整数n&#xff0c;代表台阶的阶数。 输出 求人从阶梯底端走到顶端可以有多少种不同的走法&#xff0c;输出结…

matlab在光学实验中的应用,matlab在光学实验中的应用

matlab在光学实验中的应用 《MATLAB》课程论文MATLAB 在光学实验中的应用姓名&#xff1a;学号&#xff1a;专业&#xff1a;班级&#xff1a;指导老师&#xff1a;学院&#xff1a;完成日期&#xff1a;1MATLAB 在波动光学中的应用(姓名&#xff1a;郑苗苗 12012241736 2012 级…

【HDU - 6016】Count the Sheep (思维,类似二分图)

题干&#xff1a; Altough Skipping the class is happy, the new term still can drive luras anxious which is of course because of the tests! Luras became worried as she wanted to skip the class, as well as to attend the BestCoder and also to prepare for test…

如何生成时间序列matlab,求助:在MATLAB里如何输入时间序列中的时间

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼function[logRS,logERS,V]RSana(x,n,method,q)%Syntax:[logRS,logERS,V]RSana(x,n,method,q)%____________________________________________%% Performs R/Sanalysis on a time series.%% logRS is thelog(R/S).% logERS is theEx…

【CF#192 A】Funky Numbers (二分,查找,二元组)

题干&#xff1a; As you very well know, this years funkiest numbers are so called triangular numbers (that is, integers that are representable as , where k is some positive integer), and the coolest numbers are those that are representable as a sum of two…

matlab考试试题,matlab-考试试题-

matlab-考试试题- MATLAB 考试试题 (1) 产生一个1x10的随机矩阵&#xff0c;大小位于( -5 5)&#xff0c;并且按照从大到小的顺序排列好&#xff01;(注&#xff1a;要程序和运行结果的截屏)答案&#xff1a;a10*rand(1,10)-5;bsort(a, descend )1.请产生一个100*5 的矩阵&…

【HDU - 1702 】ACboy needs your help again! (栈和队列,水题模拟)

题干&#xff1a; ACboy was kidnapped!! he miss his mother very much and is very scare now.You cant image how dark the room he was put into is, so poor :(. As a smart ACMer, you want to get ACboy out of the monsters labyrinth.But when you arrive at the g…

java中jframe不存在怎么办,java – 设置JFrame背景,为什么这不起作用?

打印加载图像的宽度(如果为-1)则图像未正确加载.img Toolkit.getDefaultToolkit().createImage("red.png");System.out.println(img.getWidth(null)); // check what it prints值得阅读Loading Images Using getResource上的Java Tutorial您可以根据图像位置尝试任何…

后盾网经典原创视频教程php,《后盾网经典原创视频教程:PHP》139集

目录0_1 后盾网_IIS环境下PHP开发环境安装0 后盾网_PHP集成环境安装视频教程1 PHP视频教程 PHP基础(一)2 PHP视频教程 PHP基础(二)3 PHP视频教程 PHP基础(三)4 PHP视频教程 数据类型(一)5 PHP视频教程 数据类型(二)6 PHP视频教程 数据类型(三)7 PHP视频教程 类型转换 外部变量8…

【HDU - 1022】Train Problem I (栈模拟,水题,思维)

题干&#xff1a; As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Station is the fastest all over the world ^v^). But here comes a proble…

【HDU - 1216 】Assistance Required (模拟,类似素数打表,不是素数问题!)

题干&#xff1a; After the 1997/1998 Southwestern European Regional Contest (which was held in Ulm) a large contest party took place. The organization team invented a special mode of choosing those participants that were to assist with washing the dirty d…