首先将坐标离散化,考虑从左往右扫描线

碰到插入操作则插入

碰到删除操作的:

当前包含i的矩形数=y1在[1,y2[i]]之间的矩形数-y2在[1,y1[i]-1]之间的矩形数

用两棵树状数组维护即可,时间复杂度$O(n\log n)$。

#include<cstdio>
#include<algorithm>
#define N 500010
int n,m,i,x1,y1,x2,y2,b[N],bl[N],br[N],now,ans=-1,cnt;
struct P{int x,l,r,t;}a[N];
inline bool cmp(P a,P b){return a.x<b.x;}
inline void addl(int x,int y){for(;x<=m;x+=x&-x)bl[x]+=y;}
inline void addr(int x,int y){for(;x<=m;x+=x&-x)br[x]+=y;}
inline int askl(int x){int t=0;for(;x;x-=x&-x)t+=bl[x];return t;}
inline int askr(int x){int t=0;for(;x;x-=x&-x)t+=br[x];return t;}
inline int lower(int x){int l=1,r=m,mid,t;while(l<=r)if(b[mid=(l+r)>>1]<=x)l=(t=mid)+1;else r=mid-1;return t;
}
inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';}
int main(){read(n);while(n--){read(x1),read(y1),read(x2),read(y2);a[++m].x=x1,a[m].l=b[m]=y1,a[m].r=y2,a[m].t=1;a[++m].x=x2,a[m].l=y1,a[m].r=b[m]=y2;}for(std::sort(b+1,b+m+1),std::sort(a+1,a+m+1,cmp),i=1;i<=m;i++){a[i].l=lower(a[i].l),a[i].r=lower(a[i].r);if(a[i].t)addl(a[i].l,1),addr(a[i].r,1);else{now=askl(a[i].r)-askr(a[i].l-1);if(now>ans)ans=now,cnt=1;else if(now==ans)cnt++;addl(a[i].l,-1),addr(a[i].r,-1);}}return printf("%d %d",ans,cnt),0;
}

  

BZOJ3356 : [Usaco2004 Jan]禁闭围栏相关推荐

  1. bzoj 3356: [Usaco2004 Jan]禁闭围栏(扫描线+树状数组)

    3356: [Usaco2004 Jan]禁闭围栏 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 45  Solved: 26 [Submit][S ...

  2. bzoj 3356: [Usaco2004 Jan]禁闭围栏 离散化+树状数组

    新博客链接:https://www.everlasting.wang/archives/228

  3. bzoj 3355: [Usaco2004 Jan]有序奶牛(拓扑排序+bitset)

    3355: [Usaco2004 Jan]有序奶牛 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 56  Solved: 29 [Submit][S ...

  4. bzoj 3359: [Usaco2004 Jan]矩形(DP)

    3359: [Usaco2004 Jan]矩形 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 74  Solved: 37 [Submit][Sta ...

  5. bzoj 3360: [Usaco2004 Jan]算二十四(暴力+表达式求值)

    3360: [Usaco2004 Jan]算二十四 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 59  Solved: 48 [Submit][S ...

  6. bzoj 3361: [Usaco2004 Jan]培根距离

    3361: [Usaco2004 Jan]培根距离 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 88  Solved: 70 [Submit][S ...

  7. BZOJ 3359: [Usaco2004 Jan]矩形( dp )

    数据范围这么小..怎么乱搞都可以吧... 先排序一遍然后O(n²) dp --------------------------------------------------------------- ...

  8. python设置背景颜色为豆绿色_eclipse 设置豆沙绿保护色,保护眼睛

    Angular.JS学习笔记--1 内容来自:http://www.runoob.com/angularjs/angularjs-intro.html AngularJS 是一个 JavaScript ...

  9. BZOJ1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏

    此题非常一眼 就是直接分别将 x,y 坐标离散化 并在离散化之后做二维前缀和 二分一下答案,O(n^2) 的 check 即可 注意在 check 当中的二分 x - mid 的过程中,需要去二分 x ...

最新文章

  1. Calendar类点点滴滴积累
  2. java collections_【Java视频教程】day31-集合练习??
  3. 笔记整理-信息系统开发基础-面向对象分析与设计-面向对象设计的基本任务
  4. django-allauth定制模板(转载)
  5. Python将数据插入到数据库时遇到单引号插入错误的问题
  6. System.Drawing.Common workaround in .NET6
  7. Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)
  8. eureka server配置_程序员笔记|详解Eureka 缓存机制
  9. jsonhelper java_JSON和JAVA的POJO的相互转换
  10. The type 'System.Object' is defined in an assembly that is not referenced
  11. ★LeetCode(1078)——Bigram 分词(JavaScript)
  12. linux vmware时间问题
  13. BUAA北京地铁乘坐线路查询
  14. Microsoft Office 2016 Project Visio Pro Plus 64 32 下载
  15. 我对“心即理,致良知,知行合一”和《王阳明四句教》的的理解。
  16. 死磕 Framework准没错,大把的高薪岗位等着你~
  17. Java3:数组和字符串
  18. Word2010图片组合
  19. 用python爬取3万多条评论,看韩国人如何评价韩国电影《寄生虫》?
  20. 清除keep-alive缓存,动态缓存

热门文章

  1. SEO搜索引擎方案制作与数字货币交易所SEO方案模版制作
  2. mysql的主句与从句_英语语法总结---二、英语中的从句是怎么回事
  3. NYOJ 541 最强DE 战斗力(大数水)
  4. 大学4年里要读的100本书
  5. k8s探针检测php,k8s实践11:kubernetes监测探针简单测试
  6. Java基于springboot+vue的流浪动物救助收养平台 nodejs 前后端分离
  7. IDEO用户体验创新模式01
  8. 李开复写给中国大学生的第五封信
  9. laravel5.5+资源控制器
  10. 中国轿车品牌如何突围之思 考