博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1913
阅读量:5767 次
发布时间:2019-06-18

本文共 2018 字,大约阅读时间需要 6 分钟。

 

这是一道好题,要求每个三点圆覆盖的点数和

我们可以算四边形的贡献,四边形显然分成两种:凸四边形和凹四边形

显然,凹四边形的覆盖只可能是三个点组成三角形包含另一个点,所以贡献是1

凸四边形,其最小圆覆盖是以最长对角线为直径的

注意一个很重要的条件,四点不共圆,所以凸四边形的贡献是2

四边形总数是一定的,显然统计凹四边形更方便

穷举一个点作为原点,即求包含原点的三角形数目——转化为bzoj1914,解决了!

1 uses math;  2 type node=record  3        x,y:longint;  4      end;  5   6 var c,b:array[0..1510] of node;  7     tot,n,a,d:int64;  8     i:longint;  9  10 procedure swap(var a,b:node); 11   var c:node; 12   begin 13     c:=a; 14     a:=b; 15     b:=c; 16   end; 17  18 function cross(a,b:node):double; 19   begin 20     exit(int64(a.x)*int64(b.y)-int64(a.y)*int64(b.x)); 21   end; 22  23 function cmp(a,b:node):boolean; 24   begin 25     if (a.y>0) and (b.y<=0) then exit(true); 26     if (b.y>0) and (a.y<=0) then exit(false); 27     if cross(a,b)>0 then exit(true); 28     exit(false); 29   end; 30  31 procedure sort(l,r:longint); 32   var i,j:longint; 33       x:node; 34   begin 35     i:=l; 36     j:=r; 37     x:=c[(l+r) shr 1]; 38     repeat 39       while cmp(c[i],x) do inc(i); 40       while cmp(x,c[j]) do dec(j); 41       if not(i>j) then 42       begin 43         swap(c[i],c[j]); 44         inc(i); 45         dec(j); 46       end; 47     until i>j; 48     if l
k then 65 begin 66 inc(t); 67 c[t].x:=b[i].x-p.x; 68 c[t].y:=b[i].y-p.y; 69 end; 70 sort(1,t); 71 get:=(n-1)*(n-2)*(n-3) div 6; 72 r:=2; 73 s:=0; 74 for i:=1 to t do 75 begin 76 while cross(c[i],c[r])>=0 do 77 begin 78 r:=r mod t+1; 79 inc(s); 80 if r=i then break; 81 end; 82 get:=get-(s-1)*s div 2; 83 dec(s); 84 end; 85 end; 86 87 begin 88 readln(n); 89 if n=3 then 90 begin 91 writeln(3.00); 92 halt; 93 end; 94 for i:=1 to n do 95 readln(b[i].x,b[i].y); 96 for i:=1 to n do 97 a:=a+get(i); 98 99 d:=n*(n-1)*(n-2)*(n-3) div 24-a;100 tot:=(n-1)*(n-2)*n div 6;101 writeln((a+2*d)/tot+3:0:6);102 end.
View Code

 

转载于:https://www.cnblogs.com/phile/p/4553370.html

你可能感兴趣的文章
oracle有规律数据触发器实现递增(NC地区分类)|更新一路case简化|
查看>>
SpannableString或SpannableStringBuilder以及string.xml文件中的整型和string型代替
查看>>
linux tar 压缩解压命令
查看>>
Zappar利用增强现实让平面图在手机屏幕里动起来 | 36氪
查看>>
ios开发学习--视图切换(View Transition)效果源码分享--系列教程
查看>>
循环队列
查看>>
IOS:聊一聊UIImage几点知识
查看>>
weblogic/utils/NestedException
查看>>
ceph主要数据结构解析2-Rados.h文件
查看>>
MSMQ-发送消息到远程专用队列path格式
查看>>
2. web前端开发分享-css,js进阶篇
查看>>
[转]sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询...
查看>>
VC获得控制台HWND GetConsoleHwnd
查看>>
《OOC》笔记(3)——C语言变长参数va_list的用法
查看>>
对皮肤美白算法的一些研究。
查看>>
10款交互设计原型开发工具
查看>>
angular学习地址
查看>>
SQL注入原理小结
查看>>
eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法
查看>>
五大常用算法之二:动态规划算法
查看>>