1913: [Apio2010]signaling 信号覆盖

Time Limit: 20 Sec Memory Limit: 64 MB
Submit: 639 Solved: 255
[Submit][Status][Discuss]
Description

Input

输入第一行包含一个正整数 n, 表示房子的总数。接下来有 n 行,分别表示 每一个房子的位置。对于 i = 1, 2, .., n, 第i 个房子的坐标用一对整数 xi和yi来表 示,中间用空格隔开。
Output

输出文件包含一个实数,表示平均有多少个房子被信号所覆盖,需保证输出 结果与精确值的绝对误差不超过0.01。
Sample Input

4

0 2

4 4

0 0

2 0
Sample Output

3.500
HINT

3.5, 3.50, 3.500, … 中的任何一个输出均为正确。此外,3.49, 3.51,
3.499999,…等也都是可被接受的输出。
【数据范围】
100%的数据保证,对于 i = 1, 2, .., n, 第 i 个房子的坐标(xi, yi)为整数且
–1,000,000 ≤ xi, yi ≤ 1,000,000. 任何三个房子不在同一条直线上,任何四个房子不
在同一个圆上;
40%的数据,n ≤ 100;
70%的数据,n ≤ 500;
100%的数据,3 ≤ n ≤ 1,500。

一道神奇的思路题。

直接枚举三点计算肯定是不行的。

三点确定一圆,考虑再加入一个点,这个四边形一共会形成四种圆,每种圆肯定会包含构成这个圆的三个点。

①如果这四个点构成的是凹四边形:
四种圆中除了在圆上的三点之外,只有一种圆会包含剩余一个点,所以一个凹四边形对答案贡献为11。

②构成的是凸多边形:
四种圆中有两种圆会包含剩余的一个点(被包含的点分别是对角和大于180°的两个点),因此一个凸四边形对答案的贡献为22。

最终的期望就是3+凹四边形个数+2∗凸四边形个数(n3)3+\frac {凹四边形个数+2*凸四边形个数}{ n\choose 3}

凸四边形个数+凹四边形个数=(n4)凸四边形个数+凹四边形个数={n \choose 4}

考虑如何计算凹四边形个数:
枚举凹四边形的凹点xx,并以他作为极点对其他点按照极角排序,(n−13)−凸四边形{n-1 \choose 3}-凸四边形就是答案,再按照极角序枚举一个点yy,从与他的角度小于180°中的点选两个点就是x,yx,y与其他点构成的凸四边形个数。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define Pi acos(-1)
#define LL long long
#define M 2005
using namespace std;
struct Point
{double x,y;
}p[M];
double a[M*2];
int n;
LL C(int n,int m)
{LL ans=1;for (int i=1;i<=m;i++)ans=1LL*ans*(n-i+1);for (int i=2;i<=m;i++)ans/=i;return ans;
}
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++)scanf("%lf%lf",&p[i].x,&p[i].y);LL t=0;for (int i=1;i<=n;i++){int tot=0;for (int j=1;j<=n;j++)if (j!=i){a[++tot]=atan2(p[j].y-p[i].y,p[j].x-p[i].x);if (a[tot]<0)a[tot]+=Pi*2;}sort(a+1,a+1+n-1);for (int j=1;j<n;j++)a[n-1+j]=a[j]+2*Pi;LL x=0;int now=1;for (int j=1;j<n;j++){while (now<(n-1)*2&&a[now+1]-a[j]<Pi)now++;if (now-j>1)x=x+C(now-j,2);}t=t+C(n-1,3)-x;}double ans=(double)(t+(C(n,4)-t)*2)/C(n,3)+3;printf("%.6lf\n",ans);return 0;
}

【BZOJ 1913】 [Apio2010]signaling 信号覆盖相关推荐

  1. 1913: [Apio2010]signaling 信号覆盖

    1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec Memory Limit: 64 MB Submit: 1420 Solved: 573 [Subm ...

  2. 【BZOJ-1913】signaling信号覆盖 极角排序 + 组合

    1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec  Memory Limit: 64 MB Submit: 1232  Solved: 506 [Su ...

  3. 京东总部大厦已经完成5G信号覆盖 网速是4G的20倍!

    近日,工信部正式向中国移动.中国联通.中国电信.中国广电发放5G牌照,标志着5G时代的正式到来. 有消息称,京东总部大厦已经完成联通/移动的5G信号覆盖,成为北京地区第一批开通5G室内信号服务的试点商 ...

  4. inventor弧度怎么标注_家里房间太大,WiFi信号覆盖不了怎么办?网件新作:分身术...

    面对房子原来越大.家居越来越多的现状,即便是上万兆无线路由器也可能会有死角的出现,尤其是在接入网络的设备增加以后,时常会出现掉线.卡顿的问题,Mesh组网已经成了当下网络时代的新需点,它的实现通过Me ...

  5. WiFi信号覆盖面积小?如何扩大Wifi信号覆盖范围?

    WiFi已是现代生活不可缺少的组成之一,在WiFi的帮助下,一个家庭网络或办公网络,能够通过无线的方法连接诸多设备.为增进大家对WiFi的认识,本文将对WiFi以及扩大WiFi信号覆盖范围的方法予以介 ...

  6. 电信手机信号测试软件,科技神器实现联通、电信、移动信号覆盖,亲测,信号杠杠滴!...

    原标题:科技神器实现联通.电信.移动信号覆盖,亲测,信号杠杠滴! 在餐厅吃饭,想必很多人都离不开手机,如果在餐厅手机信号不好,容易给客户一个不好的体验.所以我们可以看出信号强对于餐厅的重要性.但要知道 ...

  7. 雷达ADS-B信号覆盖评估系统-SRTM高程数据可视化处理

    在完成了SRTM数据文件的载入.解析后,即可提取出高程数值.高程数据均为正整数,采用色带对高程数据进行映射,将不同的高程数值得映射成为不同的颜色值即可.色带映射其原理也很简单,与热度图的制作方式相一致 ...

  8. Samtec技术前沿 | 全新电缆系统提升了热管理并延长了信号覆盖范围

    [摘要/前言] 一种全新高速.高密度电缆系统扩展了信号覆盖范围,以实现下一代的速度,并改善了热管理. Samtec的高速电缆产品经理Andy Shrout向我们展示了这个最初在DesignCon 20 ...

  9. 对讲机服务器信号不好怎么办呢,对讲机信号覆盖差怎么办?

    原标题:对讲机信号覆盖差怎么办? 很多用户在使用对讲机时反应,对讲机的信号不好,经常会出现断断续续的声音.照道理来说,这种情况在大功率对讲机上一般不会出现,但是要知道,对讲机通讯传输过程中,实则是受到 ...

最新文章

  1. 今年端午节,想回家看看父母...
  2. fastadmin的基本用法 自动生成crud模块
  3. html加载less,javascript – 动态加载less.js规则
  4. 多线程—AQS独占锁与共享锁原理
  5. windows下编译firefox
  6. 「小公式」平均数与级数
  7. pythonpyqt5线程暂停重启时间_PyQT5 停止死循环线程(监控文件是否修改)
  8. 三种主流的Kubernetes部署方式
  9. xshell 无法定位输入点_linux基础知识个人总结
  10. android应用热修复与插件化实践之路
  11. java中添加图片_java中添加图片的问题__ImageIcon_panel1_import_image1_useImage__169IT.COM
  12. matlab如何实现隔直滤波器,matlab的滤波器仿真——低通滤波器与插值滤波器
  13. 墨卡托投影和高斯-克吕格 (Gauss-Krüger) 投影
  14. Python爬虫实战一之使用Beautiful Soup抓取百度招聘信息并存储excel文件
  15. Eclipse中Java项目转化为Java Web项目
  16. GICv3软件overview手册之GICv3基本功能(2)
  17. Vue使用Object标签对接IC读卡器硬件
  18. 关于C++ delete 来释放new分配的内存
  19. 【转】“产品策划大神 如何进行用户需求分析,这篇文章实在说的透彻!!!【互联网方向】
  20. 特此郑重声明!我的文章全部是原创作品!转载请注明出处!

热门文章

  1. Android锁屏实践
  2. 超声波牙刷VS电动牙刷
  3. 第一次黑人,简直爽到不行!!
  4. 【考研经验】2018吉林大学软件工程专硕考研初试复试经验分享
  5. 重装系统qq游戏一进入就说与服务器断开连接win7,win7系统官方QQ游戏玩不了怎么办...
  6. HTML转PDF思路
  7. 高并发情况下创建多少线程合适
  8. 去掉flash builder生成apk时候自动加air前缀的方法
  9. php gd 描边,HTML5 Canvas 填充与描边(Fill And Stroke)
  10. Tableau图表 | 14、动态图(含1800-2018年世界人均收入与期望寿命动图操作实例)