博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1828 Picture(线段树扫描线矩形周长并)
阅读量:5226 次
发布时间:2019-06-14

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

线段树扫描线矩形周长并

 

#include 
#include
#include
#include
#define MAXN 22222using namespace std;int len[MAXN<<2];bool lbd[MAXN<<2],rbd[MAXN<<2];int numseg[MAXN<<2];int cnt[MAXN<<2];struct line{ int s,e,h,type;}L[MAXN];bool cmp(line a,line b){ if(a.h==b.h)return a.type>b.type; return a.h
=e) { cnt[num]+=val; pushup(num,s,e); return; } int mid=(s+e)>>1; if(l<=mid)update(num<<1,s,mid,l,r,val); if(r>mid)update(num<<1|1,mid+1,e,l,r,val); pushup(num,s,e);}int main(){ int n; while(scanf("%d",&n)!=EOF) { int lmost=10000,rmost=-10000; int m=0; for(int i=1;i<=n;i++) { int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); lmost=min(lmost,a); rmost=max(rmost,c); L[m].s=a;L[m].e=c;L[m].h=b;L[m++].type=1; L[m].s=a;L[m].e=c;L[m].h=d;L[m++].type=-1; } sort(L,L+m,cmp); int ans=0; int last=0;//记录更新之前的X周的覆盖区域 for(int i=0;i

 

 

转载于:https://www.cnblogs.com/xinyuyuanm/p/3212401.html

你可能感兴趣的文章
Docker生产实践(六)
查看>>
机器学习实战5-AdaBoost
查看>>
web-11. 层叠式表的属性与滤镜
查看>>
Vue
查看>>
表变量与临时表的优缺点(转)
查看>>
shell脚本图书
查看>>
UNIX环境高级编程——线程限制
查看>>
UNIX网络编程——原始套接字SOCK_RAW
查看>>
TCP发送源码学习(1)--tcp_sendmsg
查看>>
使用两个不同类型的数据进行加法计算时,使用异常处理语句捕获由于数据类型错误而出现的异常,发生生成错误。是否继续并运行上次的成功生成?...
查看>>
python-三级菜单和购物车程序
查看>>
web开发灵感推荐--34个有吸引力的电影网站设计灵感
查看>>
sql操作
查看>>
条件断点 符号断点
查看>>
第二十三模板 18.3.5 位集合
查看>>
LEFT JOIN条件写在where里是不会多查出数据来的
查看>>
手把手 学习Git
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
pwershell switch 语句
查看>>
学习Spring Boot:(五)使用 devtools热部署
查看>>