【bzoj1913】 Apio2010—signaling 信号覆盖

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;
}

  

时间: 2024-08-05 07:48:04

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

BZOJ1913: [Apio2010]signaling 信号覆盖

1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 1502  Solved: 615[Submit][Status][Discuss] Description Input 输入第一行包含一个正整数 n, 表示房子的总数.接下来有 n 行,分别表示 每一个房子的位置.对于 i = 1, 2, .., n, 第i 个房子的坐标用一对整数 xi和yi来表 示,中间用空格隔开. Output 输出文

【BZOJ 1913】 [Apio2010]signaling 信号覆盖

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 输出文件

【BZOJ1913】[Apio2010]signaling 信号覆盖

题意:一个平面上n个点,随机选3个点构成一个圆,问期望有多少个点在这个圆内.数据保证没有4点共圆.3点共线和重点. 认为比较难想到 因为是等概率选择,所以只要求所有情况包含的点总数 在所有C(n, 3)种情况中,每个被圆包含的点都可以对应到一个四边形上 因此求出凸四边形和凹四边形的个数就可以算出答案 1.对于凸四边形有两种方法可以包含4个点 2.对于凹四边形只有一种方法可以包含4个点 ans = (2 * Q + P) / C(n, 3) + 3 #include <cstdio> #incl

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

特别行动队 Description 这个好像斜率优化不是一般地明显了啊...只不过要分a的正负两种情况考虑是维护上凸还是下凸 1 /************************************************************** 2 Problem: 1911 3 User: mjy0724 4 Language: C++ 5 Result: Accepted 6 Time:1688 ms 7 Memory:24248 kb 8 *******************

联想全球总部(北京)地下停车场FM调频广播信号覆盖系统顺利开通运行

联想总部办公大楼联想全球总部新园区位于北京中关村软件园,总建筑面积22万平方米,可同时容纳10000多名员工办公.联想集团全球总部的运营管理和研发部门入驻新园区.新园区地下停车场共两层,近1000个停车位,本次将5套FM广播信号引入地下停车场.车辆驶入停车场内,可清楚地听到87.6MHz.88.7MHz.97.4MHz.103.9MHz.106.6MHz等5套FM广播信号,系统最终可扩容至20套光信号覆盖.此系统由接收天线.数字选频器.光纤拉远系统.微蜂窝直放站.发射天线等组成,目前系统已经开通

机场地下停车场FM广播信号覆盖

(北京恒星科通科技发展有限公司http://www.bjhxkt.com010-82565576 13810952040)一.高铁站地下停车场FM广播信号覆盖系统概述21世纪之交对中国而言,是一个大变革大发展大融合的年代,中国的汽车工业飞速前进,随着人民生活水平的提高,汽车由政府部门和权贵象征走入千家万户,逐步成为工薪阶层的代步工具.由于城市土地资源的宝贵和紧缺,地下停车场如雨后春笋应运而生,成为机场.火车站.商场.写字楼.居民区和企事业单位不可或缺的配套建筑,地下停车场设计越来越先进,规模越来

高铁站地下停车场FM广播信号覆盖方案

(北京恒星科通科技发展有限公司http://www.bjhxkt.com010-82565576 13810952040)一.高铁站地下停车场FM广播信号覆盖系统概述21世纪之交对中国而言,是一个大变革大发展大融合的年代,中国的汽车工业飞速前进,随着人民生活水平的提高,汽车由政府部门和权贵象征走入千家万户,逐步成为工薪阶层的代步工具.由于城市土地资源的宝贵和紧缺,地下停车场如雨后春笋应运而生,成为机场.火车站.商场.写字楼.居民区和企事业单位不可或缺的配套建筑,地下停车场设计越来越先进,规模越来

无线覆盖方案该如何选择

随着信息科技的发展,网络已经成为了人们生活中不可缺少的一部分.以前,人们使用手机作用只有三点,看时间,打电话,发短信.如今,手机已成为了一个缩小版的电脑,上QQ,玩微信,翻网页,看新闻.以前说到上网人们第一反应是电脑,如今已经成为了手机,现在人手一部手机已成为必然.然而这种种,都有一个前提,就是有稳定的网络. 早几年,一些服务场所,餐饮场所为吸引客户,都在门口张贴上"冷气开发"的标识,然而空调是有季节性的,只有在夏天才有效,而如今,精明的商家都已换成了"WIFI已覆盖&quo

南京大发燕澜湾室外WLAN覆盖项目建议书

  南京大发燕澜湾室外WLAN覆盖项目建议书 项目名称:                                南京大发燕澜湾室外WLAN覆盖项目建议书 项目管理单位: 项目联系人: 联系人电话: 工程建设单位 维护管理单位 申报日期: 2014年12月1日 目录 一.需求分析...........................................................................................................