题目名称 | 1729. [BOI2007]修建栅栏 |
---|---|
输入输出 | boi2007_fence.in/out |
难度等级 | ★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 20 |
题目来源 | cstdio 于2014-10-10加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:2, 提交:2, 通过率:100% | ||||
cstdio | 100 | 0.708 s | 0.36 MiB | C++ |
ceerRep | 100 | 0.733 s | 0.37 MiB | C++ |
关于 修建栅栏 的近10条评论(全部评论) | ||||
---|---|---|---|---|
回复 @cstdio :
给随手A神题的跪了,给+0.5去边界问题的神思路跪了
Chenyao2333
2014-10-12 10:32
2楼
| ||||
在BOI官网上可以下到每个测试数据的图像……简直业界良心
一道没有特判的计算几何,适合顺手做…… |
Leopold真是一个幸运的家伙。他刚刚买彩票中了一笔巨大的房产。这处房产包括一座大厦和一些豪华的楼房,他打算今后住在这里。但是,他的房产并没有能阻止不速之客的栅栏,这让Leopold十分关注。他想要修建一个栅栏,并且为了省钱,他认为栅栏围住大厦就足够了。但除此之外还有一个重要的限制:栅栏不能离任何建筑太近。更精确地,每座建筑都被一个矩形的禁止区域环绕(下文中将其称为‘禁止矩形’),在其中不能修建栅栏。矩形的边与x或y轴平行。栅栏的每一段也必须和x或y轴平行。
帮助Leopold计算能够围住大厦的合法栅栏的最小长度。
图1:大厦(黑色)和三栋其他建筑,周围环绕着禁止矩形。粗黑线画出了围住大厦的最短合法栅栏。
输入文件的第一行有一个正整数m(1<=m<=100),即建筑物的总数。
接下来m行每行描述了一个禁止矩形。每一行包含四个整数tx,ty,bx,by,其中(tx,ty)是矩形左上角的坐标,(bx,by)是矩形右下角的坐标。坐标满足0<=tx<bx<=10000,以及0<=ty<by<=10000.第一个矩形是大厦的禁止矩形。
输出一个正整数,即围住大厦的合法栅栏的最短长度。
4
8 4 13 8
2 1 6 7
4 7 9 11
14 7 19 11
32
对于30%的数据,m<=10.
对于100%的数据,规模如题所示。
BOI 2007 Day 2 -- Building a Fence