点此看题面

大致题意: 给你\(n\)个区间,求最多有多少个区间重叠,以及平均每个点被多少个区间覆盖。

第一个询问

这个应该可以直接离散化+差分,即我们先把每个区间右端点加\(1\),然后对于一个离散化后的区间\([l,r+1]\),我们在第\(l\)个位置上加\(1\),第\(r+1\)个位置上减\(1\),然后扫一遍求前缀和,同时统计最大值。

第二个询问

枚举区间,统计区间长度和,然后除以点数。

代码

  1. #include<bits/stdc++.h>
  2. #define Tp template<typename Ty>
  3. #define Ts template<typename Ty,typename... Ar>
  4. #define Reg register
  5. #define RI Reg int
  6. #define Con const
  7. #define CI Con int&
  8. #define I inline
  9. #define W while
  10. #define N 250000
  11. #define Gmax(x,y) (x<(y)&&(x=(y)))
  12. #define LL long long
  13. using namespace std;
  14. int n,m,q,a[N+5],b[N+5];
  15. class FastIO
  16. {
  17. private:
  18. #define FS 100000
  19. #define tc() (A==B&&(B=(A=FI)+fread(FI,1,FS,stdin),A==B)?EOF:*A++)
  20. #define tn (x<<3)+(x<<1)
  21. #define D isdigit(c=tc())
  22. char c,*A,*B,FI[FS];
  23. public:
  24. I FastIO() {A=B=FI;}
  25. Tp I void read(Ty& x) {x=0;W(!D);W(x=tn+(c&15),D);}
  26. }F;
  27. class Solver1
  28. {
  29. private:
  30. int dc,dv[2*N+5],cnt[2*N+5];
  31. public:
  32. I void Solve()
  33. {
  34. RI i,x,ans=0;for(i=1;i<=n;++i) dv[++dc]=a[i],dv[++dc]=b[i]+1;
  35. sort(dv+1,dv+dc+1),dc=unique(dv+1,dv+dc+1)-dv-1;//离散化
  36. for(i=1;i<=n;++i)//差分
  37. x=lower_bound(dv+1,dv+dc+1,a[i])-dv,++cnt[x],
  38. x=lower_bound(dv+1,dv+dc+1,b[i]+1)-dv,--cnt[x];
  39. for(i=1;i<=dc;++i) cnt[i]+=cnt[i-1],Gmax(ans,cnt[i]);//统计前缀和
  40. printf("%d\n",ans);//输出答案
  41. }
  42. }S1;
  43. class Solver2
  44. {
  45. private:
  46. I LL gcd(Con LL& x,Con LL& y) {return y?gcd(y,x%y):x;}
  47. public:
  48. I void Solve()
  49. {
  50. RI i;LL s=0,g;for(i=1;i<=n;++i) s+=b[i]-a[i]+1;//统计区间长度和
  51. g=gcd(s,m),s/=g,m/=g,printf("%lld/%lld\n",s,m);//除以总点数
  52. }
  53. }S2;
  54. int main()
  55. {
  56. RI i;for(F.read(n),F.read(m),i=1;i<=n;++i) F.read(a[i]),F.read(b[i]);
  57. return F.read(q),q^2&&(S1.Solve(),0),q^1&&(S2.Solve(),0),0;
  58. }

【ECNU619】白网吧(差分)的更多相关文章

  1. NOIP2012借教室[线段树|离线 差分 二分答案]

    题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要 向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自 ...

  2. Monitor HDU6514 二维差分入门学习

    Monitor HDU 6514 二维差分入门学习 题意 小腾有\(n*m\)的田地,但是有小偷来偷东西,在一片矩形区域上,有一部分区域是监控可以覆盖到的,这部分区域由一个或多个包含于该矩形区域的小矩 ...

  3. cf1200 D White Lines(二维差分)

    题目大意 有一个大小为n的矩阵,每个1*1的单位为黑或白,我们可以用一个(只有一个)大小为k*k的白色矩阵覆盖,问:最多的时候有几条白线(横的全为白 或竖的全为白 即为白线). 思路 要想把一条线(以 ...

  4. 最近集训的图论(思路+实现)题目汇总(内容包含tarjan、分层图、拓扑、差分、奇怪的最短路):

    (集训模拟赛2)抢掠计划(tarjan强) 题目:给你n个点,m条边的图,每个点有点权,有一些点是"酒吧"点,终点只能在"酒吧",起点给定,路可以重复经过,但点 ...

  5. android studio你可能忽视的细节——启动白屏?drawable和mipmap出现的意义?这里都有!!!

    android studio用了很久了,也不知道各位小伙伴有没有还在用eclipse的,如果还有,楼主真心推荐转到android studio来吧,毕竟亲儿子,你会知道除了启动速度稍微慢些,你找不到一 ...

  6. 【夯实PHP基础】php开发时遇到白页的调试方法

    本文地址   分享提纲: 1. 设置报错报错级别,显示报错 2. 白页的可能原因     1.[设置报错报错级别,显示报错] php开发时,访问地址也对,但就是不出来页面,显示的是 白的页面,所以就可 ...

  7. 手游聚合SDK开发之远程开关---渠道登入白名单

    白名单有啥好说的呢?无非就是筛选登入,大家第一眼看到就是这个印象,白名单也是有文章的,弄的时机不同会给你带来很不错的收益,注意是收益.还是举例来说,游戏上线前渠道都会做一个预下载,一般提前1-2天,这 ...

  8. hdu4059 The Boss on Mars(差分+容斥原理)

    题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设  则    为一阶差分. 二阶差分: n阶差分:     且可推出    性质: 1. ...

  9. 【hihocoder#1413】Rikka with String 后缀自动机 + 差分

    搞了一上午+接近一下午这个题,然后被屠了个稀烂,默默仰慕一晚上学会SAM的以及半天4道SAM的hxy大爷. 题目链接:http://hihocoder.com/problemset/problem/1 ...

随机推荐

  1. shell登陆加载的文件, 快捷命令, tee管道, nohup和&

    1. login shell和nologin shell的理解: 字面意思, 需要登陆的shell和不需要登陆的shell. 正确解释为: 加载用户环境配置的shell 和不加载用户环境配置的shel ...

  2. fis3打包中的一些注意事项

    1.在html文件中,如果在标签的style属性内添加路径,fis不会识别改路径并打包,如 2.fis主要针对静态文件进行打包.对其他文件打包会出现一些问题. 比如jsp页面.下面的例子script. ...

  3. 【洛谷5465】[PKUSC2018] 星际穿越(倍增)

    点此看题面 大致题意: 给定\(l_{2\sim n}\),其中\(l_i\)表示\([l_i,i-1]\)的所有点与\(i\)之间存在一条长度为\(1\)的双向路径.每次询问给出\(l,r,x\), ...

  4. mysql和oracle分页

    mysql分页 关键字limit,limit m,n 其中m表示起始位置的下标,下标从0开始.n表示要显示的条数,比如要查询一个表的第2到5条数据. ,; oracle分页 关键字rownum, ro ...

  5. Python 爬虫介绍,什么是爬虫,如何学习爬虫?

    ​ 作为程序员,相信大家对“爬虫”这个词并不陌生,身边常常会有人提这个词,在不了解它的人眼中,会觉得这个技术很高端很神秘.不用着急,我们的爬虫系列就是带你去揭开它的神秘面纱,探寻它真实的面目. 爬虫是 ...

  6. Qt Designer布局预览正常,代码调用时所有控件堆在一起

    一.实验环境 1.Windows10x64 2.anaconda4.6.9 + python3.7.1(anaconda集成,不需单独安装) 3.pyinstaller3.5 二.问题描述 1.Qt ...

  7. 【文本处理命令】之sed命令详解

    sed行处理命令详解 一.简介 sed命令是一种在线编辑器.一个面向字符流的非交互式编辑器,也就是说sed不允许用户与它进行交互操作.sed是按行来处理文本内容的,它一次处理一行内容.处理时,把当前处 ...

  8. SqlServer,Oracle,db2,MySql查询表索引

    SqlServer1. 查询表索引 SELECT 索引名称=a.name ,表名=c.name ,索引字段名=d.name ,索引字段位置=d.colid ,c.status FROM sysinde ...

  9. [笔记] .net core WPF 程序,发布独立程序与单一执行程序

    如何发布独立可运行的,和只有一个文件的 .net core WPF 程序. 1 发布并打包 Step 1 在项目上右键,在菜单中选择发布,使用文件发布,选择独立部署模式,其它的条件,依照自己的情况设置 ...

  10. 关于OC中直接打印结构体(CGRectCGSize、CGPoint、UIOffset)等数据类型

    关于OC直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型,我们完全可以把其转换为OC对象来进项打印调试,而不必对结构体中的成员变量进行打印.就好比我们可以使 ...