bzoj1913
这是一道好题,要求每个三点圆覆盖的点数和
我们可以算四边形的贡献,四边形显然分成两种:凸四边形和凹四边形
显然,凹四边形的覆盖只可能是三个点组成三角形包含另一个点,所以贡献是1
凸四边形,其最小圆覆盖是以最长对角线为直径的
注意一个很重要的条件,四点不共圆,所以凸四边形的贡献是2
四边形总数是一定的,显然统计凹四边形更方便
穷举一个点作为原点,即求包含原点的三角形数目——转化为bzoj1914,解决了!
uses math;
type node=record
x,y:longint;
end; var c,b:array[..] of node;
tot,n,a,d:int64;
i:longint; procedure swap(var a,b:node);
var c:node;
begin
c:=a;
a:=b;
b:=c;
end; function cross(a,b:node):double;
begin
exit(int64(a.x)*int64(b.y)-int64(a.y)*int64(b.x));
end; function cmp(a,b:node):boolean;
begin
if (a.y>) and (b.y<=) then exit(true);
if (b.y>) and (a.y<=) then exit(false);
if cross(a,b)> then exit(true);
exit(false);
end; procedure sort(l,r:longint);
var i,j:longint;
x:node;
begin
i:=l;
j:=r;
x:=c[(l+r) shr ];
repeat
while cmp(c[i],x) do inc(i);
while cmp(x,c[j]) do dec(j);
if not(i>j) then
begin
swap(c[i],c[j]);
inc(i);
dec(j);
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end; function dis(a:node):double;
begin
exit(sqrt(sqr(a.x)+sqr(a.y)));
end; function get(k:longint):int64;
var i,s,t,r:longint;
p:node;
begin
p:=b[k];
t:=;
for i:= to n do
if i<>k then
begin
inc(t);
c[t].x:=b[i].x-p.x;
c[t].y:=b[i].y-p.y;
end;
sort(,t);
get:=(n-)*(n-)*(n-) div ;
r:=;
s:=;
for i:= to t do
begin
while cross(c[i],c[r])>= do
begin
r:=r mod t+;
inc(s);
if r=i then break;
end;
get:=get-(s-)*s div ;
dec(s);
end;
end; begin
readln(n);
if n= then
begin
writeln(3.00);
halt;
end;
for i:= to n do
readln(b[i].x,b[i].y);
for i:= to n do
a:=a+get(i); d:=n*(n-)*(n-)*(n-) div -a;
tot:=(n-)*(n-)*n div ;
writeln((a+*d)/tot+::);
end.
bzoj1913的更多相关文章
- 【bzoj1913】 Apio2010—signaling 信号覆盖
http://www.lydsy.com/JudgeOnline/problem.php?id=1913 (题目链接) 题意 给出一个平面上n个点,求任选3个点画一个圆所包含的点的期望值. Solut ...
- bzoj1913[Apio2010]signaling 信号覆盖 计算几何
1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec Memory Limit: 64 MBSubmit: 1583 Solved: 646[Subm ...
- 【BZOJ-1913】signaling信号覆盖 极角排序 + 组合
1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec Memory Limit: 64 MBSubmit: 1232 Solved: 506[Subm ...
- [BZOJ1911][BZOJ1912][BZOJ1913]APIO2010解题报告
特别行动队 Description 这个好像斜率优化不是一般地明显了啊...只不过要分a的正负两种情况考虑是维护上凸还是下凸 /********************************** ...
- [BZOJ1913][APIO2010]信号覆盖(计算几何+计数)
1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec Memory Limit: 64 MBSubmit: 1658 Solved: 672[Subm ...
- bzoj1913: [Apio2010]signaling 信号覆盖
传送门 题解传送门 //Achen #include<algorithm> #include<iostream> #include<cstring> #includ ...
- [转载]hzwer的bzoj题单
counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ120 ...
- AHOI2018训练日程(3.10~4.12)
(总计:共90题) 3.10~3.16:17题 3.17~3.23:6题 3.24~3.30:17题 3.31~4.6:21题 4.7~4.12:29题 ZJOI&&FJOI(6题) ...
- BZOJ刷题列表【转载于hzwer】
沿着黄学长的步伐~~ 红色为已刷,黑色为未刷,看我多久能搞完吧... Update on 7.26 :之前咕了好久...(足见博主的flag是多么emmm......)这几天开始会抽时间刷的,每天几道 ...
随机推荐
- matlab查找回车字符
Hi all, I would like to read the data all at once with: `file_text = fread(fid, inf, 'uint8=>char ...
- ts 使用Visual Studio2012和TFS网站管理源代码
所需工具 Visual Studio 2012 http://tfs.visualstudio.com/ 微软网站 微软账号 hotmail 或live都行 达到目的 适合于个人项目,多用户 ...
- vi之跳到指定行
vi里怎样跳转到某一指定行 输入 :行号 :$跳到最后一行 gg跳到第一行.
- html——a标签添加点击事件,火狐浏览器直接显示0
一.问题描述 给一个a标签添加了点击事件,页面直接给了0如下图 二.问题解决 后台调试模式下,发现也进了后台方法,也返回了页面. 于是想到先把页面里大部分内容去掉,去掉所有js,查看是否是部分代码有问 ...
- 6 个基于 jQuery 的表单向导插件推荐
表单向导可以很好地引导用户进行一步一步的操作,从而降低用户错误输入的几率.尽管互联网中有大量的类似插件,但真正好用的不多. 本文整理了6个比较优秀的表单向导插件,希望能够为你带来帮助. 1. Smar ...
- POJ 1740
#include <iostream> #define MAXN 100 using namespace std; int _m[MAXN]; bool mark[MAXN]; int m ...
- Filter(过滤器)常见应用
孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(四十六)——Filter(过滤器)常见应用 一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html F ...
- 几种USB控制器类型:OHCI,UHCI,EHCI,xHCI
http://smilejay.com/2012/10/usb_controller_xhci/ 遇到过一些关于USB的东西(如下),一直没搞明白什么USB1.0/1.1/2.0/3.0之类的,当然我 ...
- TCL语言笔记:TCL过程控制练习
1.青蛙爬井 for {set day 1;set cur 7} {$cur<77} {incr cur 2 ;incr day } { } puts $day 2.求1加到100 proc g ...
- VCL源码分析方法论(以TButton.Caption属性的由来为例)
最近一段时间似乎流行源码分析:)我也来谈谈在过去一段时间里对VCL源码的分析方法方面的一点体会,本文将不探讨VCL类库的构架和设计模式方面的东本,只是以我们常见的控件属性/方法的实现过程作简单的说明, ...