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

.
.
.
.
.

分析

对于60%的做法:
前6个点,直接上暴力,别怂
对于后6个点,所有的半径都是相同的,直接用差分约束思想,在扇形开始为1,结束为-1
做一遍前缀和,然后将大于等于k的区间的长度求出来,算面积
对于100%的做法:
扇形的面积:(所占的份数/2m)*πr^2
题目说:答案要乘一个2m/π
这样一相乘 化简:所占份数*r^2
就不用考虑精度问题啦!!!(出题人好评)
现在就要求出所有被覆盖大于等于k的面积,半径就是第k大的半径
那一个部分中有什么半径,我们怎么知道呢?
我们把圆拆成一条线段,端点就是圆圈上的各个等分点
把地毯的半径视为高,连接起始点和终点,如果有横跨线段中点的,把它看作两个部分

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

现在就要求第k大值

用线段树维护就好了
.
.
.
.
.

程序:
#include<iostream>
using namespace std;
long long ans;
int n,m,tj,r,s,k,t,p[500001],to[500001],head[200001],w[200001];struct edge
{ int a,b,c;
}e[500010];void cr(int x,int y)
{ e[++tj].a=x; e[tj].b=y; e[tj].c=r;
}void work(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) work(l,mid,d*2,a,b); else work(mid+1,r,d*2+1,a,b);p[d]=p[d*2]+p[d*2+1];
}int abs(int x)
{ if (x>=0) return x; else return -x+100000;
}int find(int l,int r,int x,int k)
{if (l==r) {if (p[x]>=k) return l; else return 0;}int mid=(l+r)/2;if (p[x*2+1]>=k) return find(mid+1,r,x*2+1,k); else return find(l,mid,x*2,k-p[x*2+1]);
}
int main()
{cin>>n>>m>>k;for (int i=1;i<=n;i++){cin>>r>>s>>t;if (s==-m||s==m) {cr(-m,1);cr(t,-1);} else{if (t==-m) t=m;if (t>=s) {cr(s,1);cr(t,-1);} else {cr(s,1);cr(m,-1);cr(-m,1);cr(t,-1);}}}for (int i=1;i<=tj;i++){int j=abs(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[abs(i)];j!=0;j=to[j]) work(1,100000,1,e[j].c,e[j].b);long long a=find(1,100000,1,k);ans+=a*a;}cout<<ans;return 0;
}

转载于:https://www.cnblogs.com/YYC-0304/p/9499914.html

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

  1. 手把手教你搭建网盘系统,给小姐姐换个新家可好​?

    在数据时代,我们每天都在互联网上生成大量数据,同时也接收着大量数据.随着图片.音乐.影视.课程越来越多,不管是手机.iPad 还是电脑,空间根本不够用,所以很多人会把文件存在各种网盘里. 但近几年,网 ...

  2. 【JZOJ B组】【NOIP2013模拟】小喵喵的新家

    Description 小喵喵和小聪聪从小就是好朋友 ,他们经常在一起玩耍 .如今小喵已经厌倦了自己居住的环境,想请小聪聪为她建一个新家. 小喵喵天生多才多艺,对多种乐器颇有研究.对于生活中常见的图形 ...

  3. [线段树]小喵喵的新家

    题目描述 小喵喵和小聪聪从小就是好朋友 ,他们经常在一起玩耍 .如今小喵已经厌倦了自己居住的环境,想请小聪聪为她建一个新家. 小喵喵天生多才多艺,对多种乐器颇有研究.对于生活中常见的图形,她对圆形很感 ...

  4. 饲养员在给动物喂食时,给不同的动物喂不同的食物,而且在每次喂食时,动物都会发出欢快的叫声。例如,给小狗喂骨头,小狗会汪汪叫;给小猫喂食,小猫会喵喵叫。

    本案例要求编写一个程序模拟饲养员喂食动物的过程,案例要求如下: 饲养员给小狗喂骨头,小狗汪汪叫. 饲养员给小猫喂小鱼,小猫喵喵叫. 定义Dog类 package 实验五;public class Do ...

  5. 五年高考三年模拟暗部软件库_喵喵机MAX暑期发力,三年高考五年模拟自己在家就能打印出来...

    不知不觉,距离上一款喵喵机P2上市也已经有一年多的时间了,一直期盼着能有新产品的面世,而喵喵机也不负众望,非常适时的在暑假期间推出了新品喵喵机MAX,不仅个头更大更简约,打印纸也比上一代产品大了不止一 ...

  6. dev gridview 打印列数过多_更适合孩子使用的错题打印机,超小体积什么都能打:喵喵机P3测评...

    孩子上了小学之后,就开始有各种各样的作业要求.而且,现在老师养成了远程布置作业的习惯,经常会发首古诗要求打印背诵,发个口算题卡要求打印出来快速口算练习等等. 说实话,这绝对是一个好事,前提是家里有一个 ...

  7. 招商银行信用卡中心笔试编程题 - 小招喵跑步

    题目 小招喵跑步 链接:https://www.nowcoder.com/questionTerminal/1177e9bd1b5e4e00bd39ca4ea9e4e216 来源:牛客网 小招喵喜欢在 ...

  8. 计算机我们一起学猫叫谱子,一起喵喵喵喵喵|〈学猫叫〉/小潘潘 小峰峰 尤克里里曲谱...

    〈学猫叫〉/小潘潘 "我们一起学猫叫,一起喵喵喵喵喵!在你面前撒个娇,哎呦喵喵喵喵喵--"一首<学猫叫>因模仿喵星人卖萌被众多网友热捧,同款手势舞更是掀起一股全网学猫叫 ...

  9. 【牛客CMB2 小招喵跑步】

    牛客CMB2 小招喵跑步 题目 解题思路 代码实例 运行代码 题目 小招喵喜欢在数轴上跑来跑去,假设它现在站在点n处,它只会3种走法,分别是: 1.数轴上向前走一步,即n=n+1 2.数轴上向后走一步 ...

最新文章

  1. 【Live555】live555源码详解(九):ServerMediaSession、ServerMediaSubsession、live555MediaServer
  2. PHPExcel报错:谷歌浏览器显示网页可能暂时无法连接,或者它已永久性地移动到了新网址的原因?
  3. 《组织行为学》_09 彩虹理论:人力资本越来越高怎么办?
  4. 浅谈高性能数据库集群 —— 读写分离
  5. mysql 启动 修改密码_基础的启动/停止/重启/密码修改MySQL
  6. git从入门到精通(四)(删除本地标签,删除远程标签)
  7. 百分点零售行业大数据解决方案
  8. C/C++语言学习的策略
  9. 中美晶结盟华为 推动逆变器商机
  10. MediaDevices.getUserMedia()
  11. 百度网盘提取码_百度网盘提取码查询终结版
  12. 服务器修改动态磁盘,如何创建动态磁盘
  13. c语言precede函数怎么构造,数据结构——栈的应用(表达式求值)(C语言)
  14. 数据结构:串(String)【详解】
  15. Mac电脑升级13系统后,git clone 代码报错,mac升级后git ssh用不了
  16. Tomcat 自动部署、回滚(java project)脚本
  17. Ipad恢复按键音、锁定音和截屏音
  18. Mc1.16forge官混教程/教补-#3 物品材质覆盖注意要点[分支1]
  19. 天嵌科技TQ2440的uboot启动流程分析学习笔记
  20. php设计模式:单例模式

热门文章

  1. 周志华《机器学习》课后习题解析(第四章):决策树
  2. 撒花!吴恩达《Machine Learning Yearning》英文版完结!
  3. 确定不收藏?机器学习必备的分类损失函数速查手册
  4. java中属于常量_java中的常量和属性
  5. NDCG:推荐系统/搜索评价指标
  6. 统计特性和概率估计-2 (数学推导与证明)
  7. C#简单操作Excel
  8. 建立合理的索引提高SQL Server的性能
  9. 配置ftp服务器亲测可用
  10. MFC(WTL)编辑框长度限制