[CF335D]Rectangle And Square 解题报告

中文题面:

【描述】

你有N个矩形(编号从1到N)。所有矩形的四个角的坐标都是整数,并且两组对边分别平行于X和Y两坐标轴。不同的矩形可能接触,但是不会重叠。

  现在你的任务是:选出一些矩形,使它们恰好拼成一个正方形。

【输入】

第一行,一个整数N,为矩形的数目。

以下N行,每行四个整数x1, y1, x2, y2,描述一个左下角为(x1, y1),右上角为(x2, y2)的矩形。这N行中的第i行描述的是编号为i的矩形。

【输出】

如果存在这样的子集:

在第一行输出”YES”,后接一个空格,后接这个子集的大小k。

第二行,k个整数,用一个空格分隔,分别为子集中各矩形的编号。

当有多解时,你可以输出任意一个解。

否则:

输出一行”NO”。

【样例输入】

9

0 0 1 9

1 0 9 1

1 8 9 9

8 1 9 8

2 2 3 6

3 2 7 3

2 6 7 7

5 3 7 6

3 3 5 6

【样例输出】

YES 5

5 6 7 8 9

【数据范围】

N≤10^5,0≤x1<x2≤3000,0≤y1<y2≤3000。

————————————————————By faebdc

这个题我和大多数人一样写的3000*N的暴力,但是我想了想,其实这个范围。。就是专门为这种暴力而生的好么。因为假如一条对角线上的点太多,那么一不小心就会搞出一个正方形,然后就不跑了,所以一条对角线上的点多不起来,然后暴力就跑的飞快。

其实如果真想让大家写标算的话,完全可以把坐标范围开到10^9…

但是我写暴力的时候出现了非常蛋疼的问题,那就是判正方形的时候我写了个特别长的表达式结果轻松吃翔。。。

所以,写长表达式的时候一定要检查检查再检查!

下面讲一讲标算吧(我花了好久才看懂的超级长的英文!)。

①首先一件事情是求每个点向四周延伸的最远距离,我是用并查集搞的,但是其实不用那么麻烦,存一下每个点以其为左上角、右下角、左上角、右上角的矩形,然后四遍sort+DP就行了。。(好像都挺麻烦的)

②但是!如果从并查集的角度是很难有进一步突破的,但是如果从DP的角度思考,就会发现一件很重要的事情!对于(x1,y1),(x2,y2),x1

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-01 12:49:16

[CF335D]Rectangle And Square 解题报告的相关文章

IOI'96 Magic Square解题报告

IOI‘96 Magic Square(魔版) 题目由JerryXie翻译. Magic Square(msqaure.cpp/c/pas) [问题描述] 在魔方的成功之后,卢比克先生发明了它的二维版本,叫做魔版.它是一个由八个方块组成的表格. 在本题中我们认为每一个方块都有不同的颜色,这些颜色将会用1~8共8个整数表示.一个表格的状态将会以一个由颜色组成的序列表示,顺序是从表格左上角沿顺时针方向给出.比如上面这个表格,序列为(1,2,3,4,5,6,7,8),这被称作初始状态. 魔版有三种基本

解题报告 之 SOJ3191 Free square

解题报告 之 SOJ3191 Free square Description Time Limit: 5000 MS Memory Limit: 65536 K Description A positive integer is said to be squarefree if it is divisible by no perfect square larger than 1. For example, the first few squarefree numbers are {1, 2, 3

解题报告 之 HDU5301 Buildings

解题报告 之 HDU5301 Buildings Description Your current task is to make a ground plan for a residential building located in HZXJHS. So you must determine a way to split the floor building with walls to make apartments in the shape of a rectangle. Each buil

解题报告 之 POJ3057 Evacuation

解题报告 之 POJ3057 Evacuation Description Fires can be disastrous, especially when a fire breaks out in a room that is completely filled with people. Rooms usually have a couple of exits and emergency exits, but with everyone rushing out at the same time

解题报告 之 SOJ2414 Leapin' Lizards

解题报告 之 SOJ2414 Leapin' Lizards Description Your platoon of wandering lizards has entered a strange room in the labyrinth you are exploring. As you are looking around for hidden treasures, one of the rookies steps on an innocent-looking stone and the

ACM-ICPC 2017 Asia HongKong 解题报告

ACM-ICPC 2017 Asia HongKong 解题报告 任意门:https://nanti.jisuanke.com/?kw=ACM-ICPC%202017%20Asia%20HongKong 按AC次序: D - Card collection In an online game, a player can collect different types of power cards. Each power card can enable a player to have a uni

【解题报告】Tempter of the Bone(DFS)

解题报告——Tempter of the Bon 问题描述 Time Limit: 1000ms Memory Limit: 32768KB 64-bit integer IO format: %I64d      Java class name: Main The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to

hdu 1541 Stars 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541 题目意思:有 N 颗星星,每颗星星都有各自的等级.给出每颗星星的坐标(x, y),它的等级由所有比它低层(或者同层)的或者在它左手边的星星数决定.计算出每个等级(0 ~ n-1)的星星各有多少颗. 我只能说,题目换了一下就不会变通了,泪~~~~ 星星的分布是不是很像树状数组呢~~~没错,就是树状数组题来滴! 按照题目输入,当前星星与后面的星星没有关系.所以只要把 x 之前的横坐标加起来就可以了

【百度之星2014~初赛(第二轮)解题报告】Chess

声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明. 郑重声明:这篇记录<[百度之星2014~初赛(第二轮)解题报告]Chess>转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=667 前言 最近要毕业了,有半年没做