博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-1255 覆盖的面积 (扫描线)
阅读量:5255 次
发布时间:2019-06-14

本文共 1045 字,大约阅读时间需要 3 分钟。

题目大意:给若干个矩形,统计重叠次数不为0的面积。

题目分析:维护扫描线的长度时,只需要只统计覆盖次数大于1的区间即可。这是个区间更新,不过不能使用懒标记,但是数据规模不大,不用懒惰标记仍可以AC。

 

代码如下:

# include
# include
# include
# include
# include
# include
using namespace std;# define mid (l+(r-l)/2)const int N=1000;void read(int &x){ x=0; char c; while((c=getchar())&&(c<'0'||c>'9')); x=c-'0'; while(c=getchar()){ if(c<'0'||c>'9') break; x=x*10+c-'0'; }}//*****************************************struct Node{ int c; double len;};struct Segment{ double x1,x2,y; int d;};Segment seg[N*2+5];map
mp;vector
v;Node tr[(N<<3)+5];bool comp(const Segment &s1,const Segment &s2){ return s1.y
1) tr[rt].len=v[r]-v[l-1]; else tr[rt].len=0; }else{ if(L<=mid) update(rt<<1,l,mid,L,R,d); if(R>mid) update(rt<<1|1,mid+1,r,L,R,d); pushUp(rt); }}int main(){ //freopen("in.txt","r",stdin); int T,n; read(T); while(T--) { read(n); v.clear(); mp.clear(); double x1,x2,y1,y2; for(int i=0;i

  

转载于:https://www.cnblogs.com/20143605--pcx/p/5750126.html

你可能感兴趣的文章
php上传文件及头像预览
查看>>
程序猿加班的不归路!
查看>>
【译】在Transformer中加入相对位置信息
查看>>
大四java实习生的一些经历
查看>>
python programming
查看>>
基础排序算法之快速排序(Quick Sort)
查看>>
Truncate 删除数据
查看>>
线程池的概念
查看>>
USB打印机开钱箱
查看>>
mysql数据库 中文乱码
查看>>
Linux下Mysql数据库互为主从的配置过程
查看>>
ECSHOP系统,数据库表名称、结构
查看>>
Python Web开发框架Django
查看>>
【Install】我是如何安装Linux类系统的
查看>>
作业三4
查看>>
多态存在的3个必要条件
查看>>
code First 四
查看>>
Django与Ajax
查看>>
再做一题,2013-6-16更新
查看>>
Oracle_Statspack性能诊断工具
查看>>