apio10信号覆盖
来源:互联网 发布:c语言代码表白玫瑰花 编辑:程序博客网 时间:2024/04/29 17:02
计算几何&组合数学,也不是很难,关键是要有数学储备
平面向量叉积:a*b=xa*yb-ya*xb;当且仅当a,b共线时取等,a在b右侧时为正,a在b左侧时为负;
剩下的就是用组合数公式一顿算,最后发现只要计算一个点不在另外三个点所成三角形的情况有多少种就能出解,而这个可以枚举点然后叉积极角排序。
这题在oj上评测很囧,int64超时,longint溢出,real/double才能ac。
贴代码:
program signaling;type point=record x,y:double; end;var x,y:array[1..5000] of double; a:array[1..5000] of point; n,i:longint; sum,ta,tb:double;function det(a,b:point):double;begin det:=a.x*b.y-b.x*a.y;end;procedure sort(l,r:longint);var i,j:longint; mid,tmp:point;begin i:=l; j:=r; mid:=a[(l+r)shr 1]; repeat while det(a[i],mid)<0do inc(i); while det(mid,a[j])<0do dec(j); if i<=j then begin tmp:=a[i]; a[i]:=a[j]; a[j]:=tmp; inc(i); dec(j); end; until i>j; if i<r then sort(i,r); if l<j then sort(l,j);end;function c(n,m:int64):double;var i:double;begin if m=2 then c:=n*(n-1)/2; if m=3 then c:=n*(n-1)*(n-2)/6; if m=4 then c:=n*(n-1)*(n-2)*(n-3)/24;end;procedure process(v:longint);var i,j:longint;begin j:=0; for i:=1 to n do if i<>v then begin inc(j); a[j].x:=x[i]-x[v]; a[j].y:=y[i]-y[v]; end; sort(1,n-1); for i:=1 to n-1 do a[i+n-1]:=a[i]; i:=1; j:=2; while i<=n-1 do begin while det(a[i],a[j])<0 do inc(j); if j-1-i>=2 then sum:=sum+c(j-i-1,2); inc(i); end;end;begin assign(input,'signaling.in'); reset(input); assign(output,'signaling.out'); rewrite(output); readln(n); for i:=1 to n do readln(x[i],y[i]); sum:=0; for i:=1 to n do process(i); ta:=2*c(n,4)-n*c(n-1,3)+sum; tb:=c(n,3); write(ta/tb+3:0:6); close(input); close(output);end.
- apio10信号覆盖
- 【计算几何】信号覆盖
- APIO2010 信号覆盖
- BZOJ 1913信号覆盖
- CMMB信号覆盖的城市
- ☆【计算几何】信号覆盖
- [BZOJ1913][Apio2010]signaling 信号覆盖
- bzoj1913: [Apio2010]signaling 信号覆盖
- BZOJ1913: [Apio2010]signaling 信号覆盖
- 1913: [Apio2010]signaling 信号覆盖
- bzoj1913: [Apio2010]signaling 信号覆盖
- APIO10-特别行动队-题解
- BZOJ 1913: [Apio2010]signaling 信号覆盖
- 【BZOJ 1913】 [Apio2010]signaling 信号覆盖
- BZOJ 1913: [Apio2010]signaling 信号覆盖
- GPS信号转发器,GPS信号覆盖,GPS信号放大器,GPS信号增强器
- BZOJ 1913 [Apio]signaling 信号覆盖 方法简析
- bzoj3564: [SHOI2014]信号增幅仪 最小圆覆盖
- java 的 反射机制的使用列子
- Spring第一个案例(10级学员 庞丽课堂总结)
- 学习OpenCV——HOG+SVM
- 指针和数组equal的一道题
- Struts1的文件上传与下载
- apio10信号覆盖
- 网站推广十大妙招
- nginx源码那些事之array结构分析
- TCO2012Round1C-2-PasswordXGrid
- Spring中的依赖注入(10级学员 韩晓爽课堂总结)
- vim所支持的自动完成详解
- sql2008读书笔记_性能监视工具以及数据库的配置和自带数据库的特点
- 死锁
- Android培训班(100)内核解压过程13