Description

小喵喵和小聪聪从小就是好朋友 ,他们经常在一起玩耍 。如今小喵已经厌倦了自己居住的环境,想请小聪聪为她建一个新家。

小喵喵天生多才多艺,对多种乐器颇有研究。对于生活中常见的图形,她对圆形很感兴趣,因此小聪聪决定为她建一个圆形的新家。

我们设新家在一个平面直角坐标系上,其中新家的圆心为平面直角坐标系的原点。

小聪聪有一把神奇的剪刀,他定义了一个值m,以等分 [−pi,pi]弧度 (详见样例)。他还有一支神奇的画笔,将进行 n次“铺地毯”操作。对于第i 次“铺地毯”操作,他将设定一个半径ri,起始位置si,终止位置ti ,然后从圆心角pi*si/m到圆心角pi*ti/m这部分区域逆时针铺上一个扇形地毯。

小喵喵想到了一个奇怪的问题,她想知道有多大面积被至少铺过k次地毯。 这个问题一下就难倒了聪明的小聪聪。 现在小聪聪求助于你,你能帮他解决这个问题吗?为了方便表达 ,设答案的值为T,你只需要输出 T×2m/pi的值即可 。

Input

第一行是三个整数 n,m,k,含义 如题目描述中所述。

接下来n行, 每行描述一次铺地毯操作 。第i行有三个整数r,si,ti,含义 如 题目描述中所述。

Output

输出 一个整数 表示T×2m/pi的值。

Sample Input

3 8 2

1 -8 8

3 -7 3

5 -5 5

Sample Output

76

Data Constraint

Hint

思路

对于100%的做法:
扇形的面积:(所占的份数/2m)*πr^2
题目说:答案要乘一个2m/π
这样一相乘 化简:所占份数*r^2
就不用考虑精度问题啦!!!(出题人好评)
现在就要求出所有被覆盖大于等于k的面积,半径就是第k大的半径
那一个部分中有什么半径,我们怎么知道呢?
我们把圆拆成一条线段,端点就是圆圈上的各个等分点
把地毯的半径视为高,连接起始点和终点,如果有横跨线段中点的,把它看作两个部分
样例如下图:(用denghan大爷一张图)

设g[r]为半径为r的数量
我们可以从-m扫过去,碰到起始点的时候就把其对应的g[r]+1,碰到结束点的时候就把其对应的g[r]-1(也就类似与差分约束)

现在就要求第k大值

用线段树维护就好了

代码

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int M=100000,maxn=M*5+77;
long long ans;
int n,m,k,cnt,p[maxn],to[maxn],head[maxn],w[maxn];
struct E
{int a,b,c;
}e[maxn];
void add(int x,int y,int r)
{e[++cnt].a=x; e[cnt].b=y; e[cnt].c=r;
}
int get_val(int x)
{return x<0?-x+M:x;
}
void insert(int l,int r,int d,int a,int b)
{if(l==r){p[d]+=b; return;}int mid=(l+r)/2;if (a<=mid) insert(l,mid,d*2,a,b); else insert(mid+1,r,d*2+1,a,b);p[d]=p[d*2]+p[d*2+1];
}
int find(int l,int r,int d,int k)
{if(l==r) return p[d]>=k?l:0;int mid=(l+r)>>1;if(p[d*2+1]>=k) return find(mid+1,r,d*2+1,k);else find(l,mid,d*2,k-p[d*2+1]);
}
int main()
{scanf("%d%d%d",&n,&m,&k);for(int i=1; i<=n; i++){int r,s,t;scanf("%d%d%d",&r,&s,&t);if(s==-m||s==m) add(-m,1,r),add(t,-1,r);else{if(t==-m) t=m;if(t>=s) add(s,1,r),add(t,-1,r);else add(s,1,r),add(m,-1,r),add(-m,1,r),add(t,-1,r);}}for(int i=1; i<=cnt; i++){int j=get_val(e[i].a);if (!head[j]) head[j]=i; else to[w[j]]=i;w[j]=i;}for(int i=-m; i<=m-1; i++){for(int j=head[get_val(i)]; j; j=to[j]) insert(1,M,1,e[j].c,e[j].b);long long t=find(1,M,1,k);ans+=t*t;}printf("%lld",ans);
}

【JZOJ B组】【NOIP2013模拟】小喵喵的新家相关推荐

  1. JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)

    3518. [NOIP2013模拟11.6A组]进化序列(evolve) (File IO): input:evolve.in output:evolve.out Time Limits: 1000 ...

  2. JZOJ 3461. 【NOIP2013模拟联考5】小麦亩产一千八(kela)

    3461. [NOIP2013模拟联考5]小麦亩产一千八(kela) (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB  Det ...

  3. jzoj 3461. 【NOIP2013模拟联考5】小麦亩产一千八(math)

    3461. [NOIP2013模拟联考5]小麦亩产一千八 Description "有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾--",话说HYSBZ(Hen ...

  4. JZOJ 3388. 【NOIP2013模拟】绿豆蛙的归宿

    3388. [NOIP2013模拟]绿豆蛙的归宿 (Standard IO) Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limi ...

  5. jzoj. 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)

    Description Abathur采集了一系列Primal Zerg 的基因样本,这些基因构成了一个完整的进化链.为了方便,我们用A0,A1-An-1 这n 个正整数描述它们. 一个基因Ax 可以 ...

  6. [jzoj 3518] 【NOIP2013模拟11.6A组】进化序列(evolve){二进制}

    题目 Description Abathur采集了一系列Primal Zerg 的基因样本,这些基因构成了一个完整的进化链.为了方便,我们用A0,A1-An-1 这n 个正整数描述它们. 一个基因Ax ...

  7. JZOJ 3455. 【NOIP2013模拟联考3】库特的向量(code)

    题目 Description 从前在一个美好的校园里,有一只(棵)可爱的弯枝理树.她内敛而羞涩,一副弱气的样子让人一看就想好好疼爱她.仅仅在她身边,就有许多女孩子想和她BH,比如铃,库特,等等.不过, ...

  8. [jzoj 3461]【NOIP2013模拟联考5】小麦亩产一千八 {Fibonacci数列}

    题目 Description "有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾--",话说HYSBZ(Hengyang School for Boys & ...

  9. JZOJ 3468. 【NOIP2013模拟联考7】OSU!(osu)

    Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为一个长 ...

  10. JZOJ 3457. 【NOIP2013模拟联考3】沙耶的玩偶(doll)

    题目 Description 在美鱼和理树后援团拯救世界的同时,外表柔弱的理树也开始坚强起来,思考着离开这个世界的办法.误打误撞地,她遇上了正在教室破坏课桌打开迷宫入口的沙耶.沙耶告诉理树,这个世界的 ...

最新文章

  1. linux mysql添加用户名和密码错误,linux下为mysql设置用户名和密码
  2. 澳门大学燕茹教授课题组招聘/招生启事
  3. python【数据结构与算法】Floyd算法模拟
  4. 人工智能-机器学习=深度学习-其他
  5. “脚踢各大Python Web框架”,Sanic真有这能耐么?
  6. 由partition看窗口函数
  7. 小程序 字号设置 slider滚动改变大小_SteerMouse for mac(鼠标设置工具) v5.4.3
  8. python环境快速安装opencv 离线版安装
  9. 问君能有几多愁,恰似不懂Linux SQL如何调优——聊聊SQL Server on Linux最佳实践
  10. QuantLib 101之Swap
  11. Dying In The Sun
  12. 关于对象的思考(二)
  13. Mysql索引查询失效的情况
  14. 如何使用清理垃圾软件优化苹果电脑
  15. 最新版云铺购ds网系统全开源可运营程序源码
  16. YOLO: 3 步实时目标检测安装运行教程 [你看那条狗,好像一条狗!]
  17. 【札记】二 先天八卦与后天八卦
  18. Contest3115 - 2021级新生个人训练赛第23场_问题 H: 家庭作业
  19. Android画一条虚线
  20. 2019/5/第二周

热门文章

  1. 生活中常见的电压值,你知道多少?
  2. 【笔记】input data to the valid range for imshow with RGB data [0..1] for floats or [0.255] for integers
  3. 老国企如何焕发新势能?致远互联“协同五环”锻造老而弥坚
  4. 大牛建议——C++学习建议
  5. ARP中使用driftnet工具捕获图片
  6. 面:常见面试题整理(操作系统)
  7. 三大方案提升企业安全人才能力 永信至诚将企业网络安全教育推向云端
  8. Historic Exhibition 贪心
  9. (48)STM32——图片显示实验
  10. 学了七年Android,连【架构师筑基必备技能】都不知道有什么