【bzoj4445 scoi2015】小凸想跑步】的更多相关文章

考虑怎样的点满足条件.设其为(xp,yp),则要满足(x0-xp,y0-yp)×(x1-xp,y1-yp)<=(xi-xp,yi-yp)×(xi+1-xp,yi+1-yp)对任意i成立.拆开式子,有(x0-xp)*(y1-yp)-(y0-yp)*(x1-xp)<=(xi-xp)*(yi+1-yp)-(yi-yp)*(xi+1-xp),也即x0y1-x0yp-xpy1-y0x1+y0xp+ypx1<=xiyi+1-xiyp-xpyi+1-yixi+1+yixp+ypxi+1.移项,得(y0…
裸半平面交. 记得把P0P1表示的半平面加进去,否则点可能在多边形外. #include<bits/stdc++.h> #define N 100009 using namespace std; int n,m,u,v; const double eps=1e-8; int sign(double x){ return x<-eps?-1:x>eps; } struct vec{ double x,y; vec(){} vec(double x,double y) :x(x),y(…
传送门 话说去年的省选计算几何难度跟前几年比起来根本不能做啊(虽然去年考的时候并没有学过计算几何) 这题就是推个式子然后上半平面交就做完了. 什么? 怎么推式子? 先把题目的概率转换成求出可行区域. 然后用可行区域的面积比上总面积就是答案了. 我们设0号点(x1,y1)(x1,y1)(x1,y1),1号点(x2,y2)(x2,y2)(x2,y2),i号点(x3,y3)(x3,y3)(x3,y3),i+1号点(x4,y4)(x4,y4)(x4,y4) 然后由题可知cross(p0,p1)<cros…
题意:凸包上一个点\(p\),使得\(p\)和点\(0,1\)组成的三角形面积最小 用叉积来求: \(p,i,i+1\)组成的三角形面积为: (\(\times\)为叉积) \((p_p-i)\times (p_p-p_{i+1})\Rightarrow\) \((x_p-x_i,y_p-y_i)\times(x_p-x_{i+1},y_p-y_{i+1})\Rightarrow\) \((x_p-x_i)(y_p-y_{i+1})-(y_p-y_i)(x_p-x_{i+1})\Rightarr…
[BZOJ4445][Scoi2015]小凸想跑步 Description 小凸晚上喜欢到操场跑步,今天他跑完两圈之后,他玩起了这样一个游戏. 操场是个凸n边形,N个顶点按照逆时针从0-n-l编号.现在小凸随机站在操场中的某个位置,标记为P点.将P点与n个顶点各连一条边,形成N个三角形.如果这时P点,0号点,1号点形成的三角形的面积是N个三角形中最小的一个,小凸则认为这是一次正确站位. 现在小凸想知道他一次站位正确的概率是多少. Input 第1行包含1个整数n,表示操场的顶点数和游戏的次数.…
[BZOJ4445][SCOI2015]小凸想跑步(半平面交) 题面 BZOJ 洛谷 题解 首先把点给设出来,\(A(x_a,y_a),B(x_b,y_b),C(x_c,y_c),D(x_d,y_d),P(x,y)\) 然后我们考虑\(S_\Delta ABP<S_\Delta CDP\)什么情况下满足. 根据点积来求面积,得到: \[(x_a-x,y_a-y)\times(x_b-x,y_b-y)<(x_c-x,y_c-y)\times(x_d-x,y_d-y)\] 这个东西左边拆开之后得到…
题目描述 小凸晚上喜欢到操场跑步,今天他跑完两圈之后,他玩起了这样一个游戏. 操场是个凸 n 边形, nn 个顶点按照逆时针从 0 ∼n−1 编号.现在小凸随机站在操场中的某个位置,标记为p点.将 p 点与 n个顶点各连一条边,形成 n个三角形.如果这时p 点, 0号点, 1号点形成的三角形的面 积是 n个三角形中最小的一个,小凸则认为这是一次正确站位. 现在小凸想知道他一次站位正确的概率是多少. 题解 我们其实是要找到一个p点,使得pp0*pp1<=ppi*ppi+1. 然后我们把上面的式子展…
传送门 题意 小凸晚上喜欢到操场跑步,今天他跑完两圈之后,他玩起了这样一个游戏. 操场是个凸 $ n $ 边形,$ n $ 个顶点 $ P_i $ 按照逆时针从 $ 0 $ 至 $ n-1 $ 编号. 现在小凸随机站在操场中的某个位置,标记为 $ P $ 点.将 $ P $ 点与 $ n $ 个顶点各连一条边,形成 $ n $ 个三角形.如果这时 $ (P, P_0, P_1) $ 形成的三角形的面积是 $ n $ 个三角形中最小的一个,小凸则认为这是一次正确站位. 现在小凸想知道他一次站位正确…
题目大意:一个凸包,随机一个点使得其与前两个点组成的面积比与其他相邻两个点组成的面积小的概率 根据题意列方程,最后求n条直线的交的面积与原凸包面积的比值 #include<bits/stdc++.h> #define maxn 100010 #define eps 1e-10 using namespace std; double ans,S1,S2; struct P{ double x,y; P(,){x=a,y=b;} }; struct L{ P a,b; double ang; };…
题面 传送门 题解 设\(p\)点坐标为\(x_p,y_p\),那么根据叉积可以算出它与\((i,i+1)\)构成的三角形的面积 为了保证\(p\)与\((0,1)\)构成的面积最小,就相当于它比其它所有的三角形构成的面积都要小.如果\(p\)与\((0,1)\)构成的面积比\((i,i+1)\)小,代入叉积计算公式,有 \[(y_0-y_1-y_i+y_{i+1})x_p+(x_1-x_0-x_{i+1}+x_i)y_p+(x_0y_1-x_1y_0-x_iy_{i+1}+x_{i+1}y_i…