博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4978 A simple probability problem.(概率模型+凸包周长)
阅读量:7091 次
发布时间:2019-06-28

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

题意:一个直径为d的圆中有n个点,每两点间有线段连接,一个平面上有间距都为d的平行线,求将原放在该平面上至少有一条线段与平行线相交的概率;

思路:

        蒲丰针问题;http://wenku.baidu.com/link?url=s3rJRGUhCZ7kmsXA6o7Edr8h1rJJbibu2Ocs1Yf5BpsPwSkjkK9w-uVSV4d-cBGV36UA9bpxVfqLLA9qlPwbWkYbjkFzDaP_N5dtWHVT_mi

        长度为L的针与间距为d的平行线相交的概率为P=2*L/(pi*d);

        凸N边形与间距为d的平行线相交的概率为P=C/(pi*d);(C为凸N边形周长);

        本题需要求的即凸包周长,结果为周长除以(π乘以直径);

        样例跑出来不一样,几何题就是这么神奇。。。

#include
#include
#include
#include
using namespace std;const double epsi=1e-10;const double pi=acos(-1.0);const int maxn=10005;struct point{ double x,y; point(){} point(double xx,double yy):x(xx),y(yy){} point operator -(const point &op2)const{ return point(x-op2.x,y-op2.y); } double operator ^(const point &op2) const{ //两个点向量的叉积 return x*op2.y-y*op2.x; }};inline int sign(const double &x){ if(x>epsi) return 1; if(x<-epsi) return -1; return 0;}inline double sqr(const double &x){ return x*x;}inline double mul(const point &p0,const point &p1,const point &p2){ return (p1-p0)^(p2-p0);}inline double dis2(const point &p0,const point &p1){ return sqr(p0.x-p1.x)+sqr(p0.y-p1.y);}inline double dis(const point &p0,const point &p1){ return sqrt(dis2(p0,p1));}int n,l; //n个顶点,最近距离为lpoint p[maxn],convex_hull; //多边形顶点序列为p[],最低位置的点为convex_hullinline bool cmp(const point &a,const point &b){ //相对最低点,各点极角从小到大,距离从近到远排序 return sign(mul(convex_hull,a,b))>0||sign(mul(convex_hull,a,b))==0&&dis2(convex_hull,a)
1&&sign(mul(b[newn-1],b[newn-2],a[i]))>=0) --newn; //弹出栈顶所有未左转指向扫描顶点i的元素 b[newn++]=a[i]; //顶点i入栈 } return newn; //栈顶指针}int main(){ int t,cas; scanf("%d",&t); for(cas=1;cas<=t;cas++) { scanf("%d%d",&n,&l); for(int i=0;i
2) { n=convex(p,n,p); p[n]=p[0]; //首尾相连 double ans=0; for(int i=0;i

 

转载于:https://www.cnblogs.com/dashuzhilin/p/4648466.html

你可能感兴趣的文章
cgic程序的编写遇到的问题
查看>>
haproxy url load balancing (url 负载均衡)
查看>>
Radix Tree in Linux Kernel
查看>>
PHP常见错误收集
查看>>
一对多的两个表,查询主表的信息和主表在子表中的记录条数
查看>>
从程序员入门到“第一个项目”的一些事
查看>>
转-Pentaho技术白皮书中文版(三)--构建新组件
查看>>
SpringSrcureCode在grails中实现用户--角色--权限的管理
查看>>
java Servlet 下载 itext 生成的2003 word 文档(java生成word文档3)
查看>>
Delphi 查找标题已知的窗口句柄,遍历窗口控件句柄(转)
查看>>
单例模式
查看>>
最锋利的jQuery源码、电子书及视频教程合集(共46个)
查看>>
JavaScript 内置对象!
查看>>
解决ubuntu下打不开rar文件
查看>>
内核启动过程
查看>>
在使用ibatis实现多条件模糊查询的语句
查看>>
童宁_下一代数据中心的安全挑战
查看>>
android 3g状态及信号监测
查看>>
开源 java CMS - FreeCMS2.8 站点管理
查看>>
JSP中include指令和include行为区别
查看>>