2178: 圆的面积并 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1740  Solved: 450[Submit][Status][Discuss] Description 给出N个圆,求其面积并 Input 先给一个数字N ,N< = 1000 接下来是N行是圆的圆心,半径,其绝对值均为小于1000的整数 Output 面积并,保留三位小数 太可怕了!!!!!! 直接上辛普森积分 函数值就是x=..线上的区间并 区间并直接排序扫描就可以了…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2178 先看到这篇博客:https://www.cnblogs.com/heisenberg-/p/6740654.html 好像本应算弓形面积.三角形面积之类的,但不会...于是用辛普森积分硬做... 参考了这篇博客:https://blog.csdn.net/orpinex/article/details/7311363 然而如果写成精度友好型的 asr ( *15, /15, eps/…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2178 把包含的圆去掉.横坐标不相交的一段一段圆分开算.算辛普森的时候预处理 f( ) ,比如把自己的 f( l ) 和 f( r ) 从上一层传进来之类的,能少算很多次. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define db double us…
code #include <set> #include <cmath> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 1005; const double Pi = acos(-1.0); const double eps = 1e-12; const double INF = 1e12; inlin…
[SPOJ-CIRU]The area of the union of circles/[BZOJ2178]圆的面积并 题目大意: 求\(n(n\le1000)\)个圆的面积并. 思路: 对于一个\(x\),我们可以用线段覆盖的方法求出被圆覆盖的长度.用\(f(x)\)表示横坐标为\(x\)时覆盖的长度,则我们可以对\(f(x)\)积分来得到答案.注意面积不连续的部分要分开求. 源代码: #include<cmath> #include<cstdio> #include<cc…
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ2178.html 题目传送门 - BZOJ2178 题意 给出 $n(n\leq 1000)$ 个圆,求面积并. 所有圆的圆心坐标和半径都是绝对值不大于 1000 的整数. 题解 自适应辛普森积分模板题.注意先删掉被其他圆包含的圆. 但是 bzoj 大概是加过数据了,网上大部分直接自适应辛普森的代码都 TLE 了. 有一种卡常方法效果很好: 把 x 坐标按照整点划分成 $O(1000)$ 个区间,对于…
题面 传送门 题解 好神仙-- 先给几个定义 平面单连通区域:设\(D\)是平面内一区域,若属于\(D\)内任一简单闭曲线的内部都属于\(D\),则称\(D\)为单连通区域.通俗地说,单连通区域是没有"洞"的区域. 正方向:当\(xOy\)平面上的曲线起点与终点重合时,则称曲线为闭曲线.设平面的闭曲线L围成平面区域\(D\),并规定当一个人沿闭曲线\(L\)环行时,区域\(D\)总是位于此人的左侧,称此人行走方向为曲线L关于区域\(D\)的正方向,反之为负方向. 格林公式:设\(D\)…
大力辛普森积分 精度什么的搞了我好久- 学到了Simpson的一个trick 深度开11,eps开1e-4.跑的比有些扫描线还快- CODE #include <bits/stdc++.h> using namespace std; const int MAXN = 205; const double eps = 1e-10; inline double sqr(double x) { return x*x; } inline int dcmp(double x) { return x <…
板子题.可以转一下坐标防止被卡.精度和常数实在难以平衡. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define double long double #define N 101…
Description 给出N个圆,求其面积并 Input 先给一个数字N ,N< = 1000 接下来是N行是圆的圆心,半径,其绝对值均为小于1000的整数 Output 面积并,保留三位小数 简单说就是去除被包含的圆,求出每个圆的圆周未被其他圆覆盖的圆弧,求对应弓形的面积以及弓形的弦与原点构成的三角形的有向面积. #include<cstdio> #include<cmath> #include<algorithm> using namespace std;…