3.1 Shaping Regions 漂浮法
来源:互联网 发布:四班三倒倒班日历软件 编辑:程序博客网 时间:2024/05/18 01:13
描述
N个不同的颜色的不透明的长方形(1 <= N <= 1000)被放置在一张横宽为A竖长为B的白纸上。这些长方形被放置时,保证了它们的边与白纸的边缘平行。所有的长方形都放置在白纸内,所以我们会看到不同形状的各种颜色。坐标系统的原点(0,0)设在这张白纸的左下角,而坐标轴则平行于边缘。
格式
PROGRAM NAME: rect1
INPUT FORMAT:
(file rect1.in)
按顺序输入放置长方形的方法。第一行输入的是那个放在底的长方形(即白纸)。
第 1 行: A , B 和 N, 由空格分开 (1 <=A, B<=10,000)
第 2 到N+1行: 为五个整数 llx, lly, urx, ury, color 这是一个长方形的左下角坐标,右上角坐标(x+1,y+1)和颜色。
颜色 1和底部白纸的颜色相同。 (1 <= color <= 2500)
OUTPUT FORMAT:
(file rect1.out)
输出且仅输出所有能被看到颜色,和该颜色的总面积(可以由若干个不连通的色块组成),按color增序排列。
SAMPLE INPUT
20 20 32 2 18 18 20 8 19 19 38 0 10 19 4
SAMPLE OUTPUT
1 912 843 1874 38
INPUT EXPLANATION
请注意:被(0,0)和(2,2)所描绘的是2个单位宽、2个单位高的区域
这里有一个示意图输入:
1111111111111111111133333333443333333331333333334433333333313333333344333333333133333333443333333331333333334433333333313333333344333333333133333333443333333331333333334433333333313333333344333333333133333333443333333331333333334433333333311122222244222222221111222222442222222211112222224422222222111122222244222222221111222222442222222211112222224422222222111111111144111111111111111111441111111111
'4'在(8,0)与(10,19)形成的是宽为2的区域,而不是3.(也就是说,4形成的区域包含(8,0)和(8,1) ,而不是(8,0)和(8,2)) 。
HINTS(谨慎地使用它们!)
HINT 1
一个记录所有点的数组太大了;内存最大16MB。
掌握长方形的坐标动向,当发生覆盖时把长方形分开。
漂浮法
以逆序来进行放置,即n to 1。逆序的好处在于放置一个矩形后,俯视看到的就是最终俯视该矩形应该看到的。因为挡着它的矩形在之前已经放置好了,所以可直接统计,为递归创造了条件。每放一个矩形,可以想象成将其扔入一密度很大的海水底部,海分成了n层,然后矩形开始向上浮。在上浮过程中若碰撞到其他的矩形则断裂成几个小矩形,继续上浮,直到浮出水面。于是想到用个递归来模拟上浮过程。
- 3.1 Shaping Regions 漂浮法
- usaco-3.1-PROB Shaping Regions-漂浮法
- [漂浮法]CSU1589 Shaping Regions
- USACO section3.1 Shaping Regions(漂浮法)
- USACO 3.1 Shaping Regions
- usaco 3.1 Shaping Regions
- USACO 3.1 Shaping Regions
- USACO 3.1.4 Shaping Regions
- USACO Section 3.1 Shaping Regions
- USACO 3.1 Shaping Regions (rect1)
- Shaping Regions
- usaco Chapter 3 section 3.1 Shaping Regions
- usaco Section 3.1 Shaping Regions -- 矩形切割
- USACO Section 3.1 Shaping Regions - 矩阵切割..
- 【模拟】【USACO】Shaping Regions
- usaco Shaping Regions
- Shaping Regions解题报告
- USACO:Shaping Regions
- 标准USB/Mini-USB接口,及OTG
- CSS选择器
- win7下使用telnet的方法
- android Content Provider
- delphi实现删除XML结点
- 3.1 Shaping Regions 漂浮法
- SNMP用VC++6.0实现的方法
- 学习 C/C++的好的书籍
- 设计模式-创建型模式-生成器
- android开发我的新浪微博客户端-载入页面UI篇(1.1)
- android开发我的新浪微博客户端-载入页面sqlite篇(1.2)
- 四则表达式实现(dev cpp工具中运行通过,欢迎指正)
- Linux关机命令详解
- Bash编程 - 读写文件