题意: 一根长度为n的木条,随机选k个位置将其切成k+1段,问这k+1段能组成k+1条边的多边形的概率? 思路: 数学题.要求的是概率,明显与n无关. 将木条围成一个圆后再开切k+1刀,得到k+1段.组不成多边形就是其中有一段特别长,比其他k段加起来还要长.先算出不能围成多边形的概率,那么就是圆上面必须要有一段的长度大于半个圆周长,且其他的k-1个位置都要在同一边. 第一个点随机选,概率为1,假设这个点就是木条要组成圆的那两端.接下来要选其他的k个点的位置,他们都在同一个半圆上的概率是(1/2)…
                                    Polygon  John has been given a segment of lenght N, however he needs a polygon. In order to create a polygonhe has cut given segment K times at random positions (uniformly distributed cuts). Now he has K + 1much sh…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3122 题意: 有一根长度为n的木条,随机选k个位置把它们切成k+1段小木条.求这些小木条能组成一个多边形的概率. 分析: 不难发现本题的答案与n无关.在一条直线上切似乎难以处理,可以把直线接成一个圆,多切一下,即在圆上随机选k+1个点,把圆周切成k+1段.根据对称性,两个问题的答案…
题意:一根长度为n的木条,随机选k个位置将其切成k+1段,问这k+1段能组成k+1条边的多边形的概率. 析:这个题,很明显和 n 是没有任何关系的,因为无论 n 是多少那切多少段都可以,只与切多少段有关.然后我们要转化一下,不能直接做,因为不好做. 转化为一个圆上选 m+1 个点,能不能组成多边形,很容易知道如果一个边大于一半圆的周长,那就组不成多边形.然后位置是随便选的,概率就是1, 然后其他 m-1 个点,就只能放那一半上,每个都有1/2的概率,然后 m 个,就是1/(2^m),然后每个点都…
https://vjudge.net/problem/UVA-11971 有一根长度为n的木条,随机选k个位置把它们切成k+1段小木条.求这些小木条能组成一个多边形的概率. 将木条看做一个圆,线上切k刀等价于圆上切k+1刀 如果能组成多边形,每一段木条的长度都要<圆周长/2 反过来,如果不能组成多边形,有且仅有一段长度>=圆周长/2 如图所示,第一刀可以随便切,接下来的每一刀都要在第一刀所在的那个半圆上 概率=(1/2)^k 每一个切点处,都可以断开成为线,共有k+1种断法 所以不能构成多边形…
题意: 有一根绳子,在上面随机选取k个切点,将其切成k+1段,求这些线段能够成k+1边形的概率. 分析: 要构成k+1边形,必须最长的线段小于其他k个线段之和才行. 紫书上给出了一种解法,但是感觉理解得不是太好,所以又去网上找了其他解法. 知乎上有人问过这个问题,而且给出了很多种严格的解法. 最后代码里将(1LL << i)写成(1 << i),这种细节应当注意. #include <cstdio> typedef long long ll; ll gcd(ll a,…
感觉这道题的转换真的是神来之笔 把木条转换成圆,只是切得次数变多一次 然后只要有一根木条长度为直径就租不成 其他点的概率为1/2^k 当前这个点的有k+1种可能 所以答案为1 - (k+1)/2^k #include<cstdio> #include<cmath> #define REP(i, a, b) for(int i = (a); i < (b); i++) using namespace std; typedef long long ll; ll gcd(ll a,…
题意: 初始奖金为1块钱,有n个问题,连续回答对i个问题后,奖金变为2i元. 回答对每道题的概率在t~1之间均匀分布. 听到问题后有两个选择: 放弃回答,拿走已得到的奖金 回答问题: 如果回答正确,奖金加倍 如果回答错误,游戏结束,得不到奖金 分析: d[i]表示答对i题后最大期望奖金,设回答对第i题的概率为p, 则回答第i题的期望奖金 = p × d[i] 考虑上不回答的情况,期望奖金最大值为max{2i-1, p*d[i]} 因为p在t~1均匀分布,所以d[i]等于分段函数max{2i-1,…
题意:给出a和b,表示在直角坐标系上的x=[-a,a] 和 y=[-b,b]的这样一块矩形区域.给出一个数s,问在矩形内随机选择一个点p=(x,y),则(0.0)和p点组成的矩形面积大于s的概率是多少? 思路: 由于4个象限上的区域是一样的,所以只需要在第一象限上求概率即可.可以根据面积的大小来求概率. s可能很小,那么p点在任意地方都是满足要求的,所以概率1.如果a*b<=s,那么p点怎么选都不可能大于s,所以概率0. 求出x*y<=s的部分,这部分是不满足要求的,1减去这部分面积占a*b的…
分两类,当前第i题答或不答 如果不回答的话最大期望奖金为2的i次方 如果回答的话等于p* 下一道题的最大期望奖金 那么显然我们要取最大值 所以就要分类讨论 我们设答对i题后的最大期望奖金为d[i] 显然临界点,也就是这两种情况相等的时候 p0 = 2^i / d[i+1] 那么因为题目说概率在t到1之间 所以p0最小为t,代码中要取max 当前概率在t到1之间 那么当p在t到p0这个范围内,p<p0,这个时候 p*d[i+1] < 2^i,那显然选 2^i 在这个范围内的概率是 p1 =(p0…