Codeforces 235B Let's Play Osu! (概率dp求期望+公式变形)...
分类:
其他好文 时间:
2015-08-25 16:52:24
阅读次数:
192
题意:一个方格矩阵r*c,现在从(1,1)走到(r,c),假设当前走到的格子为(i,j),停留原地概率为p1[i][j],下一次移动到格子(i,j+1)概率为p2[i][j],到(i+1,j)概率为p3[i][j]。p1[i][j]+p2[i][j]+p3[i][j]=1。三者需要消耗的能量均为2,问走到(r,c)需要消耗的能量
思路:比较基础的一道概率DP的题目
假设从(...
分类:
其他好文 时间:
2015-08-25 16:32:07
阅读次数:
132
解题思路:题目要求的是至少收到一份Offer的最大概率,我们得到得不到的最小概率即可,状态转移方程:dp[j]=min(dp[j],dp[j-val[i]]*p[i]);其中,p[i]表示得不到的概率,(1-dp[j])为花费j元得到Offer的最大概率 #include
#include
using namespace std;int main() {...
分类:
其他好文 时间:
2015-08-21 17:16:12
阅读次数:
146
题意:给你n个节点的树,从1节点开始走,到每个节点都有三种情况,被杀死回到1节点,找到隐藏的出口出去,沿着当前节点相邻的边走到下一个节点,给出每个节点三种情况发生的概率分别为ki,ei,1-ki-ei,求找到出口时已经过的边数的期望。分析:用树状dp考虑问题。当节点是叶子节点时它只是向父节点走,非叶...
分类:
其他好文 时间:
2015-08-21 00:03:29
阅读次数:
170
一道状态较多的概率DP,想要表示所有的状态显然要拓展几个维度表示九堆牌当前的状态 。
但是这么写太复杂,所以我们不妨用一个vector来储存状态,将dp数组用一个map来表示,即 map ,double> d; 利用vector可以作为函数参数传递这个优点,将大大节省代码量 。
概率很好求,在每一次迭代中,寻找所有可以转移的状态数tot,那么状态转移就是d[i] = sum(d[i-1])/t...
分类:
其他好文 时间:
2015-08-18 22:48:42
阅读次数:
156
题意:三个色子有k1,2,k3个面每面标号(1-k1,1-k2,1-k3),一次抛三个色子,得正面向上的三个编号,若这三个标号和给定的三个编号a1,b1,c1对应则总和置零,否则总和加上三个色子标号和,直到总和不小于n时结束,求抛色子的期望次数。分析:该题状态好分析dp[i]表示和为i时的期望次数,...
分类:
其他好文 时间:
2015-08-18 19:06:25
阅读次数:
157
题意:有n个节点的图,开始有一些边存在,现在每天任意选择两点连一条边(可能已经连过),求使整个图联通的期望天数。分析:由于开始图可以看做几个连通分量,想到了以前做的一个题,一个点代表一个集合(这里是连通分量)进行压缩dp[i][s]表示最后连接的第i个联通分量,联通状态是s时的期望天数,dp[0][...
分类:
其他好文 时间:
2015-08-18 18:23:11
阅读次数:
97
题意:给出放一个多米诺骨牌,向左向右倒的概率,求要放好n个骨牌,需要放置的骨牌的期望次数。分析:用到区间dp的思想,如果一个位置的左面右面骨牌都已放好,考虑,放中间的情况,dp[i]表示放好前i个骨牌,要放的期望次数,枚举1-i,每个点做中间点求对应的期望,取最小值。dp[i]=min(L*dp[l...
分类:
其他好文 时间:
2015-08-18 13:44:21
阅读次数:
97
题意:给你一个数n每一步这个数可以变为他的因子,直到这个数变为1,求n变到1的期望步数。分析:dp[i],表示i变为1的期望步数,dp[1]=0,dp[n]是答案。dp[i]=sum(dp[j])/tmp+1;(j是i的因子,tmp是i因子的个数化简即可#include #include #incl...
分类:
其他好文 时间:
2015-08-18 11:39:06
阅读次数:
111
题意:有n种卡片,每包面里面,可能有一张卡片或没有,已知每种卡片在面里出现的概率,求获得n种卡片,需要吃面的包数的期望分析:n很小,用状压,以前做状压时做过这道题,但概率怎么推的不清楚,现在看来就是基本的概率dpdp[s]表示获得卡片种数情况是s时期望包数,dp[(1#include #includ...
分类:
其他好文 时间:
2015-08-18 11:37:14
阅读次数:
123