![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM.概率
slowlight93
这个作者很懒,什么都没留下…
展开
-
uva 11457 Tennis contest(概率,递推, 简单题)
题意:一场比赛有2n-1局,先赢n局者赢,A赢每一场比赛是一个独立事件,概率为p,问A赢得比赛的概率。思路:f(i, j) 前i场比赛赢j场的概率#include#define SPEED_UP iostream::sync_with_stdio(false);using namespace std;#define rep(i, s, t) for(int (i)=(s);(i)原创 2014-12-28 17:04:07 · 612 阅读 · 0 评论 -
HDU 5378 Leader in Tree Land (概率dp,进阶)
题意: 给一棵有n个节点,根为1的树的每个节点赋一个值 1-n 的唯一的值。一个子树的代表是其中最大的节点。则一共有m个代表,求m=k的方案数。 思路: 多校题。。这样的dp还是不太会。。 1) u是一个代表 等价于 u是以他为根的子树的最大值 2)有k个代表 等价于 有且只有k个子树,根为该子树中的最大值 sz[u]表示sz[u]表示 u的子树大小 dp[i][j]dp[i][j]表原创 2015-08-12 15:15:08 · 754 阅读 · 2 评论 -
2004 TCO QR3 div1 1000(简单条件概率)
题意: 首先给了个基本遗传模型。 string p1a, p1b, p2a, p2b 分别是父母的各自两条DNA链。 然后依赖关系,i depends on j 表示 i 只能在 j 呈显性的时候表现出显性。依赖关系没有环。 求出,孩子每对基因表现显隐的概率。 思路: 处理依赖,就用类似拓扑的方法就行了。。int n;double P[55][2];vector<int> g[55]原创 2015-05-06 15:28:26 · 473 阅读 · 0 评论 -
srm 152 div1 500(简单概率计算)
题意: 你有n台分布的服务器,用来分配id给客户端。id池大小为N。 每台服务器负责分配aia_i个id出去 现在有两个方案 1)每台服务器每次分配都是随机的 2)每台服务器记下它分配过的id,然后只分配没用过的 思路: 1)所有分配都是一样的。。 2)中想清楚样本空间是怎样变化的就好了,每台服务器一开始是N,然后每分配一个减少1class Collision{ p原创 2015-05-06 14:23:05 · 424 阅读 · 0 评论 -
2004 TCCC OL1 div1 1000(概率dp,简单)
题意: 有一片水塘,用string来表示 比如”.XX”(保证第一个位置是’.’),表示以该形式向右边无穷拓展”.XX.XX.XX····”(X表示障碍物 你站在水塘左边,准备打水漂,石子碰到障碍物就沉了。。 石子有一个maxDist属性,每一次弹射时在[1, maxDist]区间内随机选一个距离。每弹一次maxDist减1,也就是在不碰到任何障碍物的情况下,石子最多弹射maxDist次(不原创 2015-05-06 17:11:20 · 433 阅读 · 0 评论 -
zoj 3329 One Person Game(概率DP基础)
题意: 。。。 思路: E[i]E[i]为当前分数为i时,到游戏结束时掷骰次数的期望。 E[i]=∑Pk∗Ei+k+P0∗E0,P0=1/(k1+k2+k3)E[i] = \sum{P_k*E_{i+k}}+P_0*E_0, P_0 = 1/(k1+k2+k3) 我们要求的是E[0],,边界是E[j]=0,j>nE[j] = 0, j>n 假设E[i] = ai * E[0] + bi原创 2015-04-05 20:46:48 · 401 阅读 · 0 评论 -
hdu 4035 Maze(概率DP进阶,树形DP)
题意: 给你一棵树(也可能是森林) 站在每个节点时 1)有ki的几率回到节点1 2)有ei的几率离开 3)随机移动到一个相邻的节点 最开始在1,求离开需要移动的次数的期望。 思路: 一开始打算直接上方程然后求解线性方程组来着。。 后来发现判断无解难以处理(1e5的数据。。) 1)方程很容易写出来,注意我们是在树上进行dp,所以最好区分father和children 2)边界是叶原创 2015-04-05 21:04:24 · 440 阅读 · 0 评论 -
zoj 3640 Help Me Escape(概率DP基础)
题意: 。。。 思路: 题面给了个大大的公式可能会吓到人 = =。。 不过看懂题就没什么了。 普通的概率dp,甚至不用变换方程式 = =! Ei=P∗(∑(Ei+cj,i<=cj+1)+tj,i>cj)E_i = P*(\sum{(E_{i+c_j, i<=c_j}+1})+t_{j,i>c_j}) 边界是E[i],i>max{cj}E[i], i>max\{c_j\}int n, f原创 2015-04-05 22:15:06 · 466 阅读 · 0 评论 -
hdu 2955 Robberies(概率,dp)
题意:。。思路:tot 物品总价值f[i][j] 前i个物品价值为j时最小的概率选择i得到的新概率: p[i] * (1-f[i-1][j - v[i]]) + f[i-1][j - v[i]]//#include#include #include #include #include #include #include #include #include #i原创 2015-02-06 12:10:38 · 439 阅读 · 0 评论 -
codeforces 500D New Year Santa Network (树结构, 组合, 概率(注意精度))
题意:给了一颗树,和它的边权。。然后给若干修改,每次改一条边的权值。。问题是,每次修改后随机找三个不同的点,求 E( d(a, b)+d(a, c)+d(b, c)) 。。。思路:如果是随机选两个点,就好办得多了。我们让1作为root, 如果 (u, v) 修改后变化了 d, 那么它对总权值的贡献是 size(k)*(n-size(k))*d, k = size(u) size(原创 2015-01-17 18:25:02 · 859 阅读 · 0 评论 -
uva 11021 Tribles (概率,递推)
题意:略。。白书上经典的概率题思路:f(i) 表示一开始有一个毛球,i天后死亡的概率。#include#define SPEED_UP iostream::sync_with_stdio(false);using namespace std;#define rep(i, s, t) for(int (i)=(s);(i)<=(t);++(i))#define urep(原创 2014-12-28 14:04:10 · 482 阅读 · 0 评论 -
codeforces 280 C Game on Tree (离散概率)
题意: 给一棵树。 每次等可能地选个节点,去掉其代表的子树。 求消掉整棵树的期望。 思路: 把最终的期望看成是每个节点的期望值和。 消掉一个节点有两种方式 1)消去祖先 2)该节点被直接选择 E(u) = 1 * dep(u) + 0 * ( dep(u) - 1 ) dep(u) 等于根到u的路径上的节点数void dfs(int fa, int u, int dep) {原创 2015-09-12 23:30:27 · 526 阅读 · 0 评论