1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstdio>
  4. #include<cstring>
  5. #include<algorithm>
  6. #include<cmath>
  7. using namespace std;
  8. int n;
  9. const double eps = 1e-;
  10. struct node
  11. {
  12. double x,y,r;
  13. }b[],a[];int cnt;
  14. bool cmp1(node aa,node bb)
  15. {
  16. return aa.r<bb.r;
  17. }
  18. bool v[];
  19. double dis(int x,int y)
  20. {
  21. return sqrt((b[x].x-b[y].x)*(b[x].x-b[y].x)+(b[x].y-b[y].y)*(b[x].y-b[y].y));
  22. }
  23. double lmin,rmax;
  24. pair<double,double>q[];
  25. double mx(double x,double y)
  26. {
  27. return x<y?y:x;
  28. }
  29. double f(double x)
  30. {
  31. int top=;double len=;
  32. for(int i=;i<=cnt;i++)
  33. {
  34. double xx=fabs(a[i].x-x);
  35. if(fabs(xx)<=a[i].r)
  36. {
  37. double ww=sqrt(a[i].r*a[i].r-xx*xx);
  38. q[++top].first=a[i].y-ww;
  39. q[top].second=a[i].y+ww;
  40. }
  41. }
  42. sort(q+,q+top+);len+=q[].second-q[].first;
  43. double rs=q[].second;
  44. for(int i=;i<=top;i++)if(q[i].second>rs)len+=q[i].second-mx(q[i].first,rs),rs=q[i].second;
  45. return len;
  46. }
  47. double asr(double l,double mid,double r,double A,double B,double C)
  48. {
  49. double s=((r-l)/)*(A+*B+C),lf=f((l+mid)/),rf=f((mid+r)/);
  50. double ls=((mid-l)/)*(A+B+*lf),rs=((r-mid)/)*(B+C+*rf);
  51. if(fabs(s-ls-rs)<=eps)return s;
  52. return asr(l,(l+mid)/,mid,A,lf,B)+asr(mid,(r+mid)/,r,B,rf,C);
  53. }
  54. int main()
  55. {
  56. scanf("%d",&n);
  57. for(int i=;i<=n;i++)
  58. {
  59. scanf("%lf%lf%lf",&b[i].x,&b[i].y,&b[i].r);
  60. lmin=min(lmin,b[i].x-b[i].r);rmax=max(rmax,b[i].x+b[i].r);
  61. }
  62. sort(b+,b+n+,cmp1);
  63. for(int i=;i<=n;i++)
  64. {
  65. for(int j=;j<i;j++)
  66. {
  67. if(dis(i,j)<=b[i].r-b[j].r)v[j]=;
  68. }
  69. }
  70. for(int i=;i<=n;i++)if(!v[i])a[++cnt]=b[i];
  71. printf("%.3f\n",asr(lmin,(lmin+rmax)/,rmax,,f((lmin+rmax)/),));
  72. return ;
  73. }

bzoj 2178 自适应Simpson积分的更多相关文章

  1. 自适应Simpson积分

    自适应Simpson积分 作用 如标题所示,这玩意就是当你不会微积分的时候来求积分的. 总所周知,积分的定义就是函数的某一段与坐标轴之间的面积. 那么,自适应Simpson积分就是一种可以再某些精度下 ...

  2. 【bzoj1502】[NOI2005]月下柠檬树 自适应Simpson积分

    题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩子,当他看到在月 ...

  3. HDU 1724 Ellipse 【自适应Simpson积分】

    Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  4. CSU 1806 Toll 自适应simpson积分+最短路

    分析:根据这个题学了一发自适应simpson积分(原来积分还可以这么求),然后就是套模板了 学习自适应simpson积分:http://blog.csdn.net/greatwall1995/arti ...

  5. 【BZOJ-1502】月下柠檬树 计算几何 + 自适应Simpson积分

    1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1017  Solved: 562[Submit][Status] ...

  6. HDU 1724 Ellipse 自适应simpson积分

    simpson公式是用于积分求解的比较简单的方法(有模板都简单…… 下面是simpson公式(很明显 这个公式的证明我并不会…… (盗图…… 因为一段函数基本不可能很规则 所以我们要用自适应积分的方法 ...

  7. 【BZOJ1502】[NOI2005]月下柠檬树 Simpson积分

    [BZOJ1502][NOI2005]月下柠檬树 Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树 ...

  8. [BZOJ1502]月下柠檬树(自适应辛普森积分)

    1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1387  Solved: 739[Submit][Status] ...

  9. HDU 1724 Ellipse (自适应辛普森积分)

    题目链接:HDU 1724 Problem Description Math is important!! Many students failed in 2+2's mathematical tes ...

随机推荐

  1. Ubuntu系统无法识别Logitech M590蓝牙鼠标的问题

    参见 - https://blog.csdn.net/yh2869/article/details/73119018 亲测可用. 系统:ubuntu 16.04 64bit 现象:鼠标配对可以成功,但 ...

  2. 02-matplotlib-散点图

    import numpy as np import matplotlib.pyplot as plt ''' 散点图显示两组数据的值,每个点的坐标位置的值决定 用户观察两种变量的相关性: 正相关 负相 ...

  3. 搬运_maven打包

    参考文章 利用Maven插件将依赖包.jar/war包及配置文件输出到指定目录 <build> <plugins> <plugin> <groupId> ...

  4. more和less命令详解

    基础命令学习目录首页 原文链接:https://www.cnblogs.com/aijianshi/p/5750911.html 一.more命令 more功能类似 cat ,cat命令是整个文件的内 ...

  5. webpack入门指南-step03

    一.webpack 的使用 webpack简单点来说就就是一个配置文件,所有的魔力都是在这一个文件中发生的. 这个配置文件主要分为三大块 entry 入口文件 让webpack用哪个文件作为项目的入口 ...

  6. Notes of Daily Scrum Meeting(11.10)

    Notes of Daily Scrum Meeting(11.10) 今天是周一,虽然仍然在假期里,但是我们仍然要继续我们团队的开发工作了,分工大家已然都很明确,所以接下来 就是认真投入,把自己负责 ...

  7. mongo导入导出命令

    1.导出工具:mongoexport     1.概念:         mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指 ...

  8. Beta阶段团队项目开发篇章4

    例会时间 2016.12.11 例会照片 个人工作 上阶段任务验收 删除robot功能较为简单,基本实现,但是一直Question版块任务量过大,考虑到最近要进行编译课设第二次测试,为该任务再分配一段 ...

  9. 【转】常用jar包的作用了解

    发项目的过程中,经常需要用到一写jar包,现在对其中的一写jar的作用,做下总结,也算是避免少引或者多引jar包吧,欢迎大家补充.谢谢. 1.apache的一写jar commons-collecti ...

  10. mongo学习1 (转)

    关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合” 就是对应关系数据库中的“表”,“文档”对应“行”. 一: 下载 上Mon ...