【HDOJ6354】Everything Has Changed(计算几何)
题意:
给定一个平面和一个(0,0)为中心的大圆,有n个小圆保证没有两两之间相交与覆盖整个大圆的情况,求小圆覆盖后大圆的周长并
1≤m≤100, -1e3<=x[i],y[i]<=1e3,
思路:
高中数学几何题,余弦定理算圆心角
每加一个圆就把覆盖掉的周长减掉,增加的周长加上
把内含,外切,不相交的三种情况特判掉
acos算出来的是弧度
考试时候不会推也是醉了
- #include<cstdio>
- #include<cstring>
- #include<string>
- #include<cmath>
- #include<iostream>
- #include<algorithm>
- #include<map>
- #include<set>
- #include<queue>
- #include<vector>
- using namespace std;
- typedef long long ll;
- typedef unsigned int uint;
- typedef unsigned long long ull;
- typedef pair<int,int> PII;
- typedef vector<int> VI;
- #define fi first
- #define se second
- #define MP make_pair
- #define N 11000000
- #define MOD 1000000007
- #define eps 1e-8
- #define pi acos(-1)
- int gao(double x)
- {
- if(fabs(x)<eps) return ;
- if(x<eps) return -;
- else return ;
- }
- int read()
- {
- int v=,f=;
- char c=getchar();
- while(c<||<c) {if(c=='-') f=-; c=getchar();}
- while(<=c&&c<=) v=(v<<)+v+v+c-,c=getchar();
- return v*f;
- }
- int main()
- {
- int cas;
- scanf("%d",&cas);
- while(cas--)
- {
- int n;
- double R;
- scanf("%d%lf",&n,&R);
- double ans=R*pi*;
- for(int i=;i<=n;i++)
- {
- double x,y,r;
- scanf("%lf%lf%lf",&x,&y,&r);
- double l=sqrt(x*x+y*y);
- if(gao(l-r-R)>=||gao(l-R+r)<) continue;
- if(gao(l-R+r)==)
- {
- ans+=r*pi*;
- continue;
- }
- double s1=(R*R+l*l-r*r)/(*R*l);
- double s2=(r*r+l*l-R*R)/(*r*l);
- s1=*acos(s1);
- s2=*acos(s2);
- ans+=r*s2;
- ans-=R*s1;
- }
- printf("%.8f\n",ans);
- }
- return ;
- }
【HDOJ6354】Everything Has Changed(计算几何)的更多相关文章
- hdu6354 杭电第五场 Everything Has Changed 计算几何
Everything Has Changed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java ...
- HDU 6354.Everything Has Changed-简单的计算几何、相交相切圆弧的周长 (2018 Multi-University Training Contest 5 1005)
6354.Everything Has Changed 就是计算圆弧的周长,总周长=大圆周长+相交(相切)部分的小圆的弧长-覆盖掉的大圆的弧长. 相交部分小圆的弧长直接求出来对应的角就可以,余弦公式, ...
- CentOS:ECDSA host key "ip地址" for has changed and you have requested strict checking(转)
原文地址:http://blog.csdn.net/ausboyue/article/details/52775281 Linux SSH命令错误:ECDSA host key "ip地址& ...
- ACM/ICPC 之 计算几何入门-叉积-to left test(POJ2318-POJ2398)
POJ2318 本题需要运用to left test不断判断点处于哪个分区,并统计分区的点个数(保证点不在边界和界外),用来做叉积入门题很合适 //计算几何-叉积入门题 //Time:157Ms Me ...
- 【异常】INFO: TopologyManager: EndpointListener changed ...
5月份做云部署,在调试CSS系统时,出现启动系统时,卡死情况,后台日志如下: May 03, 2016 2:34:52 AM org.apache.cxf.dosgi.topologymanager. ...
- HDU 2202 计算几何
最大三角形 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- tomcat 7 WARNING: A context path must either be an empty string or start with a '/' and do not end with a '/'. The path [/] does not meet these criteria and has been changed to []
tomcat 7 WARNING: A context path must either be an empty string or start with a '/' and do not end w ...
- ACM 计算几何中的精度问题(转)
http://www.cnblogs.com/acsmile/archive/2011/05/09/2040918.html 计算几何头疼的地方一般在于代码量大和精度问题,代码量问题只要平时注意积累模 ...
- Centos 7 mysql Buffered warning: Changed limits: max_connections: 214 解决方法
Everytime I restart MySQL I have this warning: [Warning] Buffered warning: Changed limits: max_conne ...
随机推荐
- web资源持续更新----20150213
响应式设计创意收集网站:http://mediaqueri.es css禅意花园 http://www.csszengarden.com/
- 51nod 1264 线段相交——计算几何
题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1264 检查点的位置就行了,具体见注释. /* (a-c)×(d-c)*(d ...
- 【树形dp】7.14城市
很典型的按照边考虑贡献的题. 题目描述 小A居住的城市可以认为由n个街区组成.街区从1到n依次标号街区与街区之间由街道相连,每个街区都可以通过若干条街道到达任意一个街区,共有n-1条街道.其中标号为i ...
- mysql查询数据包太大:max_allowed_packet
查询大小: show variables like '%max_allowed_packet%'; 修改大小: set global max_allowed_packet = 1024 * 1024 ...
- FTP实验报告
FTP实验报告 制作人:全心全意 准备工作: linux1:192.168.100.4 关闭防火墙.selinux机制 配置yum源 匿名访问 1.安装vsftpd服务和客户端 [root@local ...
- PERL学习之模式匹配
一.简介 模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即模式def.其用法如结合函数split将字符串用某模式分成多个单词:@array = split(/ /, $line); ...
- HTML 文件类表单元素如何限制上传类型,Accept属性设置
需求描述:简单的控制file的选择类型 解决方法:使用HTML input file 的accept属性控制 实例: <form action="demo_form.asp" ...
- MySQL 之视图、 触发器、事务、存储过程、内置函数、流程控制、索引
本文内容: 视图 触发器 事务 存储过程 内置函数 流程控制 索引 ------------------------------------------------------------------ ...
- LeetCode(107) Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
- cocos2d-x游戏开发(二)之创建第一个项目
配置好开发环境之后,尝试创建一个cocos项目 (1)打开cocos2d-x安装目录,如D:\DIY\cocos2d-x-3.3 看到目录下有可执行文件 download-deps 以及 setup ...