D题:

题目思路:给你n个不想交的矩形并别边长为奇数(很有用)问你可以可以只用四种颜色给n个矩形染色使得相接触的

矩形的颜色不相同,我们首先考虑可不可能,我们分析下最多有几个矩形互相接触,两个时可以都互相接触

三个时也可以互相接触,而四个时怎么摆我们都不能让他们相互都接触,所以我们最多可以用三种不同颜色

的矩形去接触另一个矩形,因此我们就一定可以用四种颜色来染色,然后我们来考虑怎么染色,因为不存在相

交的情况,所以就拿左下角来分析,首先我们来分析下,

1,两个矩形要上下接触时:我们考虑纵坐标,因为边长为奇数,所以坐标必须的奇偶必须不同,

2,两个矩形左右接触:同理,横坐标奇偶不同,

3,两个矩形永远都不可能接触,通过上面两个结论我们很好得知当横纵坐标奇偶都相同时,不可能接触

有了上面的结论,我们先令横纵坐标都为奇数的矩形为颜色1,所有的1都不可能接触,

当纵坐标为偶数,横坐标为奇数,这样只能与1的矩形上下接触,此时颜色为2

当纵坐标为奇数,横坐标为偶数,这样与1只能左右接触,此时颜色为3

除了上面的就是颜色为4,这个算法的正确性是从上面三个结论得来的!我们确定每种颜色矩形坐标的奇偶时,

                           就能保证相同颜色的矩形不可能相交!结论3

——http://blog.csdn.net/qq_34731703/article/details/54845983

#include<cstdio>  

#define abs(x) (x<0?-x:x)  

int x[500005],y[500005];  

int main()
{
int n;scanf("%d",&n);
for(int i=1;i<=n;i++){
int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);
x[i]=abs(a);
y[i]=abs(b);
}
puts("YES");
for(int i=1;i<=n;i++){
if(x[i]%2==1&&y[i]%2==1)puts("1");
else if(x[i]%2==1&&y[i]%2==0)puts("2");
else if(x[i]%2==0&&y[i]%2==1)puts("3");
else puts("4");
}
return 0;
}

【分类讨论】Codeforces Round #395 (Div. 2) D. Timofey and rectangles的更多相关文章

  1. Codeforces Round #395 (Div. 2) D. Timofey and rectangles

    地址:http://codeforces.com/contest/764/problem/D 题目: D. Timofey and rectangles time limit per test 2 s ...

  2. Codeforces Round #395 (Div. 2) C. Timofey and a tree

    地址:http://codeforces.com/contest/764/problem/C 题目: C. Timofey and a tree time limit per test 2 secon ...

  3. Codeforces Round #395 (Div. 2)B. Timofey and cubes

    地址:http://codeforces.com/contest/764/problem/B 题目: B. Timofey and cubes time limit per test 1 second ...

  4. 【树形DP】Codeforces Round #395 (Div. 2) C. Timofey and a tree

    标题写的树形DP是瞎扯的. 先把1看作根. 预处理出f[i]表示以i为根的子树是什么颜色,如果是杂色的话,就是0. 然后从根节点开始转移,转移到某个子节点时,如果其子节点都是纯色,并且它上面的那一坨结 ...

  5. Codeforces Round #395 (Div. 2)

    今天自己模拟了一套题,只写出两道来,第三道时间到了过了几分钟才写出来,啊,太菜了. A. Taymyr is calling you 水题,问你在z范围内  两个序列  n,2*n,3*n...... ...

  6. Codeforces Round #395 (Div. 1)

    比赛链接:http://codeforces.com/contest/763 A题: #include <iostream> #include <cstdio> #includ ...

  7. Codeforces Round #395 (Div. 2)(A.思维,B,水)

    A. Taymyr is calling you time limit per test:1 second memory limit per test:256 megabytes input:stan ...

  8. Codeforces Round #395 (Div. 2)(未完)

    2.2.2017 9:35~11:35 A - Taymyr is calling you 直接模拟 #include <iostream> #include <cstdio> ...

  9. Codeforces Round #395 (Div. 2) C

    题意 : 给出一颗树 每个点都有一个颜色 选一个点作为根节点 使它的子树各自纯色 我想到了缩点后check直径 当<=3的时候可能有解 12必定有解 3的时候需要check直径中点的组成点里是否 ...

随机推荐

  1. [poj 3252]数位dp前导0的处理

    通过这个题对于数位dp中前导0的处理有了新的认识. 题目链接:http://poj.org/problem?id=3252 //http://poj.org/problem?id=3252 #incl ...

  2. tomcat内存配置及配置参数详解

    1.jvm内存管理机制: 1)堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟 ...

  3. CMDB资产管理系统开发【day26】:02-数据写入待存区

    一.资产自动回报数据及个更新流程图 二.表结构注释(NewAssetApprovalZone) class NewAssetApprovalZone(models.Model): "&quo ...

  4. HASHMAP 深入解析

    http://blog.csdn.net/ghsau/article/details/16843543/

  5. bzoj3790 manacher算法+贪心

    紧跟jk大佬的步伐 这道题哇 因为机器一能生成回文串 所以我们只要用manacher跑一遍求出q[i]这样就把问题转化成了类似线段覆盖的题目 贪心就好了 至于,BIT优化dp我不会所以直接贪心了 注意 ...

  6. 一张图介绍 html中offset、client、scroll、offset 、padding、margin 各种属性介绍

  7. 列出top中的pid

    #!/usr/bin/env python import os import string #方法1:通过字符串的isdigits来判断 #filelist = os.listdir('/proc') ...

  8. selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

    http://www.seleniumhq.org/download   1. selenium 3.x开始,webdriver/firefox/webdriver.py的__init__中,exec ...

  9. linux C 中的volatile使用【转】

    转自:http://blog.csdn.net/sukhoi27smk/article/details/38020583 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器 ...

  10. js监听不到组合键

    我在js文件中写代码,监听 ctrl + enter 组合键,但是一直监听不到.只能监听到单个键. 后来我将监听的代码放到html页面中去,就能监听到了. 这个问题困扰我很久,记录下!