HDU 6158 计算几何 笛卡尔定理 + 韦达定理
来源:互联网 发布:如何关闭淘宝手机店铺 编辑:程序博客网 时间:2024/04/27 15:30
题目链接
感谢ICPCCamp的题解,链接送上:CCPC 2017网络赛题解
题解已经讲得非常清楚了,补充一点细节吧。
(1).关于笛卡尔定理
对于此题,只需要了解这么一个性质:(来自wiki 用的谷歌翻译,若有偏差还请指出~)
定义一个圆的曲率
若平面有两两相切,且有
(2).关于韦达定理
对于此题,第一个与已知圆相切的圆的半径非常好求,其半径
故我们现在
易发现这是一个关于
直接求解是挺困难的,设两个解是
因为
对于题目给的图:
若
若
这样我们就可以类似迭代的方式,不断往后递推求解。
另外小心精度和时间的问题。
因为N越大,其后面的圆的面积对于答案的贡献几乎可以忽略不计,这时要及时退出循环,避免超时。
亲测,当eps取(1e-13)时跑得最快。
218msAC
代码:
#include<cmath>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const double eps = 1e-13;const double PI = acos(-1.0);int main(){ int T;scanf("%d",&T); while(T--){ int r1,r2,n; scanf("%d%d%d",&r1,&r2,&n); if(r1 < r2) swap(r1,r2); double k1 = -1.0/r1,k2 = 1.0/r2,k3 = 1.0/(r1-r2); double k4 = k1 + k2 + k3; double ans = (r1-r2)*(r1-r2); n--; for(int i=1 ;i<=n ;i+=2){ double r4 = 1.0/k4; if(r4*r4 < eps) break; ans += r4*r4;if(i+1<=n) ans += r4*r4; double k5 = 2*(k1+k2+k4) - k3; k3 = k4;k4 = k5; } printf("%.5f\n",ans*PI); } return 0;}
阅读全文
4 0
- HDU 6158 计算几何 笛卡尔定理 + 韦达定理
- HDU 6158 (计算几何+笛卡尔定理+韦达定理)
- HDU 6158 The Designer【计算几何+笛卡尔定理+韦达定理】
- HDU 6158 The Designer(笛卡尔定理+韦达定理)
- CodeForces-77E(计算几何+笛卡尔定理)
- HDU 6158 The Designer 笛卡尔定理+韦达定理 2017ccpc网络赛
- HDU 6158 The Designer(笛卡尔定理)
- hdu 6158 The Designer && 计蒜客 Finding the Radius for an Inserted Circle 笛卡尔定理应用+韦达定理
- 计算几何之Pick定理
- HDU 2092 韦达定理
- hust训练-计算几何之 pick定理
- uva 11178 morley定理(计算几何基础)
- 计算几何 欧拉定理应用
- LA-3263-计算几何,欧拉定理
- hdu 6158 The Designer && 计蒜客 Finding the Radius for an Inserted Circle 笛卡尔定理应用
- HDU - 3775(几何+Pick定理+好题)
- 几何中的著名定理
- 蝴蝶定理【几何】
- [NOIP2016真题]蚯蚓
- HDU(1004)Let the Balloon Rise
- CNN--based Network Architectures
- 迷宫算法的细化(C++)
- memcache 雪崩现象
- HDU 6158 计算几何 笛卡尔定理 + 韦达定理
- 国赛----可见光室内定位
- 使用Windows API实现SOCKET Ping 范例源代码
- Hdu 6152 Friend-Graph【暴力】
- 自定义HTTPMessageConverter接收JSON格式的数据
- About Me
- git学习笔记整理-11-分支新建与合并
- kmp详解
- 并查集入门--hd 1233 还是畅通工程 【klckr prim】