2012年4月22日

POJ 1177 Picture (线段树+离散化+扫描线) 详解

摘要: POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177在做本题之前,必须先了解什么是线段树和离散化,请看前一篇博文线段树(segment tree),里面对线段树和离散化的说明相对比较清楚了。对于这题,我们的思路步骤如下(代码和下面的文字解释结合着看):1.对于输入的N个矩形,有2*N条纵向边,我们把这些边叫做扫描线2.建立一个struct ScanLine,保留这些扫描线struct ScanLine{ int x;//横坐标 int y1;//扫描线的下端点 int y2;//扫描线的上端点 int flag;//若该扫... 阅读全文

posted @ 2012-04-22 12:49 NULL00 阅读(7467) 评论(5) 推荐(5) 编辑

线段树(segment tree)

摘要: 线段树在一些acm题目中经常见到,这种数据结构主要应用在计算几何和地理信息系统中。下图就为一个线段树:(PS:可能你见过线段树的不同表示方式,但是都大同小异,根据自己的需要来建就行。)1.线段树基本性质和操作线段树是一棵二叉树,记为T(a, b),参数a,b表示区间[a,b],其中b-a称为区间的长度,记为L。线段树T(a,b)也可递归定义为:若L>1 : [a, (a+b) div 2]为 T的左儿子; [(a+b) div 2,b]为T 的右儿子。 若L=1 : T为叶子节点。线段树中的结点一般采取如下数据结构:struct Node{ int left... 阅读全文

posted @ 2012-04-22 03:25 NULL00 阅读(41044) 评论(7) 推荐(9) 编辑

导航