题目链接

正解:贪心。

首先我们可以计算出每个圆被多少个圆覆盖。

很显然,最外面的圆是肯定要加上的。

然后第二层的圆也是要加上的。那么第三层就不可能被加上了。同理,第四层的圆又一定会被加上。

然后我们可以发现一个贪心策略,没被覆盖和被覆盖奇数次的圆加上,被覆盖偶数次的圆减去。

可以发现这样的贪心策略是最优的。

 #include <bits/stdc++.h>
#define il inline
#define RG register
#define ll long long
#define N (1005) using namespace std; const double pi=acos(-1.0); double x[N],y[N],r[N],ans;
int cov[N],n; il int gi(){
RG int x=,q=; RG char ch=getchar();
while ((ch<'' || ch>'') && ch!='-') ch=getchar();
if (ch=='-') q=-,ch=getchar();
while (ch>='' && ch<='') x=x*+ch-,ch=getchar();
return q*x;
} il double dis(RG int i,RG int j){
return sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
} il int check(RG int i,RG int j){
return r[i]<r[j] && dis(i,j)<=r[j]-r[i];
} int main(){
#ifndef ONLINE_JUDGE
freopen("dance.in","r",stdin);
freopen("dance.out","w",stdout);
#endif
n=gi();
for (RG int i=;i<=n;++i) x[i]=gi(),y[i]=gi(),r[i]=gi();
for (RG int i=;i<=n;++i)
for (RG int j=;j<=n;++j){
if (i==j) continue; cov[i]+=check(i,j);
}
for (RG int i=;i<=n;++i)
if (!cov[i]) ans+=pi*r[i]*r[i];
else if (cov[i]&) ans+=pi*r[i]*r[i];
else ans-=pi*r[i]*r[i];
printf("%0.8lf\n",ans); return ;
}

最新文章

  1. 关于DDD的学习资料汇总
  2. 让项目同时支持ARC和非ARC
  3. EF Code First 数据库迁移Migration剖析
  4. Codeforces Round #138 (Div. 2) ACBDE
  5. python对比两个文件问题
  6. Flask -- 静态文件 和 模板渲染
  7. self、 superclass 、 super的区别
  8. 利用CVE-2017-11882拿到持久性shell
  9. 201421123042 《Java程序设计》第8周学习总结
  10. eclipse项目改为maven项目导致svn无法比较历史数据的解决办法
  11. mq【转】
  12. 理解微信小程序Wepy框架的三个事件交互$broadcast,$emit,$invoke
  13. zabbix系列(四)Zabbix3.0.4添加对Nginx服务的监控
  14. delphi StringGrid 表格的复制粘贴
  15. oracle 12cR2 smart flash cache实测
  16. elasticssearch+kibanna入门(撰写中)
  17. 完整的Jquery-easyUI显示分页数据例子
  18. 深入理解List集合框架底层原理的实现
  19. HDUOJ----4509湫湫系列故事——减肥记II
  20. Ubantu 安装boost环境

热门文章

  1. ImportError: cannot import name wordnet
  2. React.js 小书 Lesson19 - 挂载阶段的组件生命周期(二)
  3. fetch将替代ajax?
  4. tomcat中文请求乱码问题
  5. js获取span标签的值
  6. 快速搭建maven私服 Artifactory on Docker
  7. java温故而知新(8)反射机制
  8. .net项目常用的库
  9. 第2章 css边框属性
  10. makefile  模板 (template)