http://www.lydsy.com/JudgeOnline/problem.php?id=1913 (题目链接)

题意

  给出一个平面上n个点,求任选3个点画一个圆所包含的点的期望值。

Solution

  这个问题可以转化为凹凸多边形的问题求解(当然我是没想到的)。。左转题解:http://blog.csdn.net/regina8023/article/details/45556321

细节

  注意存放极角的数组要开成2倍。

代码

// bzoj1913
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define LL long long
#define inf 2147483640
#define eps 1e-6
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std; const int maxn=2000;
struct point {int x,y;}p[maxn];
LL C[maxn][maxn];
double a[maxn<<1];
int n; int main() {
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d%d",&p[i].x,&p[i].y);
for (int i=0;i<=n;i++) C[i][0]=1;
for (int i=1;i<=n;i++)
for (int j=1;j<=i;j++) C[i][j]=C[i-1][j]+C[i-1][j-1];
LL t2,t1=0;
for (int i=1;i<=n;i++) {
int cnt=0;
for (int j=1;j<=n;j++) if (i!=j) {
a[++cnt]=atan2(p[j].y-p[i].y,p[j].x-p[i].x);
if (a[cnt]<0) a[cnt]+=2*Pi;
}
sort(a+1,a+cnt+1);
for (int j=1;j<=cnt;j++) a[j+cnt]=a[j]+2*Pi;
for (int j=1,k=1;j<=cnt;j++) {
while (a[k+1]-a[j]<Pi && k<2*cnt) k++;
t1-=C[k-j][2]; //凸多边形个数
}
t1+=C[n-1][3];
}
t2=C[n][4]-t1;
printf("%.6lf",(double)(t1+t2*2)/C[n][3]+3);
return 0;
}

  

【bzoj1913】 Apio2010—signaling 信号覆盖的更多相关文章

  1. bzoj1913[Apio2010]signaling 信号覆盖 计算几何

    1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 1583  Solved: 646[Subm ...

  2. bzoj1913: [Apio2010]signaling 信号覆盖

    传送门 题解传送门 //Achen #include<algorithm> #include<iostream> #include<cstring> #includ ...

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

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

  4. bzoj 1913: [Apio2010]signaling 信号覆盖【旋转卡壳(?)】

    参考:https://blog.csdn.net/qpswwww/article/details/45334033 讲的很清楚 做法比较像旋转卡壳但是具体是不是我也不清楚.. 首先知道只要求出每种方案 ...

  5. 【BZOJ】1913: [Apio2010]signaling 信号覆盖(计算几何+计数)

    题目 传送门:QWQ 分析 人类智慧题,不会做...... 详细题解1      详细题解2 总体思路是考虑四边形 讨论凹四边形凸四边形,最后加一个单调性优化省掉个$ O(n) $ 代码 代码感觉好短 ...

  6. [BZOJ 1913] signaling 信号覆盖

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1913 TIP:(注意,这题只能输出6位才能过,7位都不行wtf?) Algorithm: ...

  7. [BZOJ1913][APIO2010]信号覆盖(计算几何+计数)

    1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 1658  Solved: 672[Subm ...

  8. [BZOJ1911][BZOJ1912][BZOJ1913]APIO2010解题报告

    特别行动队 Description   这个好像斜率优化不是一般地明显了啊...只不过要分a的正负两种情况考虑是维护上凸还是下凸 /********************************** ...

  9. 家用wifi信号覆盖增强扩展实用指南

    家用wifi信号覆盖增强扩展实用指南 现在网上很多号称穿墙王的无线路由器,但是一般用起来效果都不理想,其实最主要的原因还是家里面一般每个房间不大,但是墙比较多.并且一般也没有一个所谓的中心点放置路由器 ...

随机推荐

  1. 错误解决:error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

    执行以下代码,生成唯一的UID $fp = popen("/xxx/bin/tools/uuidgen system", "r");// $uid = frea ...

  2. winform窗体(二)——控件

    一.窗体的事件 每一个窗体都有一个事件,这个窗体加载完成之后执行哪一段代码 位置:1)右键属性→事件→load 双击进入 2)双击窗体任意一个位置进入 删除事件:先将事件页面里面的挂好的事件删除,再删 ...

  3. Linq专题之提高编码效率—— 第二篇 神一样的匿名类型

    说起匿名类型,我们都知道这玩意都是为linq而生,而且匿名类型给我们带来的便利性大家在实战中应该都体会到了,特别适合于一次性使用,临时 使用这些场景,虽然说是匿名类型,也就是说是有类型的,只是匿名了而 ...

  4. sql monitor生成不了报告& FFS hint不生效两个问题思考

    事情的发生就是这么偶然,一步步的深入才能汲取到更深入的知识~~ -------------------START------------------------------------------- ...

  5. C#:结构

    1. 简单示例 // 定义结构 public struct Person { public string name; public int age; } class Program { static ...

  6. .NET 缩略图服务器 ResizingServer

    之前写过一篇文章 .NET 响应式自动缩略图服务器 之后对此Image Server又进行了基于ImageResizer的改写 基于.NET 图片服务器 支持缩略图格式 基于 ImageResizer ...

  7. ASP.NET MVC 5 with EF 6 上传文件

        参考   ASP.NET MVC 5 with EF 6 - Working With Files Rename, Resize, Upload Image (ASP.NET MVC) ASP ...

  8. POJ2677 Tour[DP 状态规定]

    Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4307   Accepted: 1894 Description ...

  9. jdbc java数据库连接 3)Statement接口之执行DDL、DML、DQL

    |- Statement接口: 用于执行静态的sql语句 |- int executeUpdate(String sql)  : 执行静态的更新sql语句(DDL,DML) |- ResultSet ...

  10. 安装交叉编译的 GCC 时出现的错误

    错误如下: ../.././libgcc/../config-ml.: enable_libstdc++_v3=yes: command not found make[]: Entering dire ...