概率DP
青竹梦
在你没有尽全力之前,永远不知道最强的自己有多强!!!
展开
-
hdu-3853-LOOPS-概率dp
用记忆化写概率DP写的越来越纯真了。。 感觉记忆化很好写。。。 #include #include #include #include using namespace std; #define maxn 1100 #define eps 1e-6 #define zero(x) (fabs(x)<0?0:x) double mp[maxn][maxn][4]; double dp[maxn]原创 2014-06-23 19:31:22 · 880 阅读 · 0 评论 -
hdu-4418-Time travel-高斯+概率dp
把N个点先转化为2*N-2个点。 比如说把012345转化成0123454321。 这样,就可以找出任意两两个点之间的关系。 然后根据关系可以得出来一个一元多项式的矩阵。 然后就用高斯消元求出矩阵即可。 #include #include #include #include #include #include using namespace std; #define eps 1e-6 #原创 2014-06-24 23:35:04 · 1741 阅读 · 0 评论 -
hdu-4035-Maze-树上的概率dp
对于叶子节点和非叶子节点非别列公式。 然后化简公式。 和非树上的差不多。。 #include #include #include #include #include #include #include using namespace std; #define eps 1e-9 #define zero(x) ((fabs(x)<eps?0:x)) #define maxn 11000 #de原创 2014-06-27 15:48:53 · 956 阅读 · 0 评论 -
hdu-4089-Activation-概率dp
kuangbin题解写的很好,我就不赘余了。。 一下解释来自kuangbin: 题意:有n个人排队等着在官网上激活游戏。Tomato排在第m个。 对于队列中的第一个人。有一下情况: 1、激活失败,留在队列中等待下一次激活(概率为p1) 2、失去连接,出队列,然后排在队列的最后(概率为p2) 3、激活成功,离开队列(概率为p3) 4、服务器瘫痪,服务器停止激活,所有人都无法激活了。原创 2014-06-25 16:05:32 · 1465 阅读 · 0 评论 -
poj-2096-Collecting Bugs-概率DP
期望dp。 dp[x][y]:已经遇到x个bug,y个sub,还需要的期望步数。则: 设:p1=x/n;p2=(n-x)/n;p3=y/s;p4=(s-y)/s; dp[x][y]=p1*p3*(dp[x][y]+1) +p2*p4*(dp[x+1][y+1]+1) +p2*p3*(dp[x+1][y]+1) +p1*p4*(dp[x][y+1]原创 2014-06-23 15:48:34 · 825 阅读 · 0 评论 -
zoj-3329-One Person Game-有环的概率DP
感觉kuangbin写的题解不错,就直接抄袭过来啦。。。 地址:http://www.cnblogs.com/kuangbin/archive/2012/10/03/2710648.html 题意:有三个骰子,分别有k1,k2,k3个面。 每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和。 当分数大于n时结束。求游戏的期望步数。初始分数为0 设dp[i原创 2014-06-24 15:31:52 · 989 阅读 · 0 评论 -
hdu-4336-Card Collector-概率DP
以后还是使用递推把,不能用记忆化了,记忆化太耗时间了。。。 因为N很小,所以我们可以用状态压缩。用压缩起来的状态表示已经拥有的卡片。 然后根据状态之间的关系进行求解。 #include #include #include #include using namespace std; #define maxn 110000 #define eps 1e-6 #define zero(x) (f原创 2014-06-23 21:15:21 · 1108 阅读 · 5 评论 -
zoj-3640-Help Me Escape-概率DP
dp[x]:能力为x的时候,逃出的期望。 则,可以根据x,来算出期望的公式。 #include #include #include #include using namespace std; #define maxn 110000 #define eps 1e-6 #define zero(x) (fabs(x)<0?0:x) double dp[maxn]; int c[maxn]; in原创 2014-06-23 20:32:54 · 948 阅读 · 0 评论 -
hdu-4405-Aeroplane chess-概率DP
还是那么做。。。 无非加了一条跳转。。。几乎都差不多。。 #include #include #include #include using namespace std; #define maxn 110000 #define eps 1e-6 #define zero(x) (fabs(x)<0?0:x) double dp[maxn]; int pre[maxn]; int n; dou原创 2014-06-23 19:39:47 · 769 阅读 · 0 评论 -
poj-3744-Scout YYF I-矩阵乘法
f[i]=f[i-1]*p+f[i-2]*(1-p); 正好可以用矩阵加速。。。。 #include #include #include #include #include using namespace std; struct matr { double mat[3][3]; friend matr operator *(const matr a,const matr b)原创 2014-06-20 22:47:42 · 1182 阅读 · 0 评论