hdu 3853 概率dp】的更多相关文章

题意:在一个R*C的迷宫里,一个人在最左上角,出口在右下角,在每个格子上,该人有几率向下,向右或者不动,求到出口的期望 现在对概率dp有了更清楚的认识了 设dp[i][j]表示(i,j)到(R,C)需要消耗的能量 则: dp[i][j]=p1[i][j]*dp[i][j]+p2[i][j]*dp[i][j+1]+p3[i][j]*dp[i+1][j]+2; 化简得到: dp[i][j]=p2[i][j]*dp[i][j+1]/(1-p1[i][j])+p3[i][j]*dp[i+1][j]/(1…
先推出F(n)的公式: 设dp[i]为已经投出连续i个相同的点数平均还要都多少次才能到达目标状态. 则有递推式dp[i] = 1/6*(1+dp[i+1]) + 5/6*(1+dp[1]).考虑当前这一次掷色子,有1/ 6的概率投的和前面的一样,有5/6的概率不一样,不一样就要重新投,就到了dp[1]的状态,这里投了一次,所以要加1.边界有dp[0] = dp[1]+1,dp[n] = 0; 可以这么说,H[n]应该是6*F[n]的,随便YY一样. 更严谨的话就是一样要去推,递推式如下,设dp[…
2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP  測试数据太水了....10000*50*50*50都能过 加个vector优化到 #include "stdio.h" #include "string.h" #include "vector" using namespace std; double…
Little Tiger vs. Deep Monkey Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 2670    Accepted Submission(s): 921 Problem Description A crowd of little animals is visiting a mysterious laboratory…
算是挺简单的一道概率dp了,如果做了前面的聪聪于可可的话,这题不需要什么预处理,直接概率dp就行了... #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm> #include <math.h> #include <map> #include <queue> #include <sstream> #incl…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4405 题目大意:飞行棋.如果格子不是飞行点,扔骰子前进.否则直接飞到目标点.每个格子是唯一的飞行起点,但不是唯一的飞行终点.问到达或越过终点的扔骰子期望数. 解题思路: 一个告诉你求期望应该逆推而不是正推的题. 如果正推的话,对于一个点i,如果是飞行终点,那么势必要枚举到达它的飞行起点,起点有多个,每个起点概率不一定相等,期望怎么求? 如果逆推(终点变成起点)的话,对于一个点i,如果是飞行起点,那…
hdu 4336 小吃包装袋里面有随机赠送一些有趣的卡片,如今你想收集齐 N 张卡片.每张卡片在食品包装袋里出现的概率是p[i] ( Σp[i] <= 1 ), 问你收集全部卡片所需购买的食品数量的期望是多少. 对于每袋食品.有两种结果,该卡片已经收集到了和没有收集到(没有卡片的情况视为收集到了). 把已经收集到的卡片的集合记为 s ,dp[s] 表示已经收集到集合s的卡片情况下收集齐全部的卡片的购买数量的期望,s 为空集即为所求.s  为全集时dp[s] = 0; 对于上面说的两种情况 _si…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4576 思路:由于每次从某一位置到达另一位置的概率为0.5,因此我们用dp[i][j]表示第i次操作落在位置j的概率,并且可以发现,当前位置的概率只与上一次的位置上的概率有关,因此我们可以滚动数组来处理.最后就是从l到r的概率累加了. http://paste.ubuntu.com/5998274/…
http://acm.hdu.edu.cn/showproblem.php?pid=5001 当时一看是图上的就跪了 不敢写,也没退出来DP方程 感觉区域赛的题  一则有一个点难以想到 二则就是编码有点难度. 这个题: 我一直的思路就是1-能到达i的概率 就是不能到达i的概率.然后三维方程巴拉巴拉,,,,把自己搞迷糊 正确做法: dp[k][j]   经过j步到达k点 而且不经过i点的概率 这么设的原因是.就能够求不能到达i点的概率了.   不能到达i点的概率就是segma(dp[v][j-1]…
题意: 在一个r*c的网格中行走,在每个点分别有概率向右.向下或停止不动.每一步需要的时间为2,问从左上角走到右下角的期望时间. SOL: 非常水一个DP...(先贴个代码挖个坑 code: /*========================================================================== # Last modified: 2016-01-20 23:08 # Filename: HDU3853.cpp # Description: ====…
LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Total Submission(s): 2552    Accepted Submission(s): 1041 Problem Description Akemi Homura is a Mahou Shoujo (Puella Magi/Magical Girl).Homura wants to help h…
题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率为p1,p2,````pN.每包至多一张卡片,可能没有卡片.求需要买多少包才能拿到所以的N张卡片,求次数的期望. 转移方程: f[s] = 1 + ((1-segma{ p[i] })f[s]) + (segma{ p[j]*f[s] }) + (segma{ p[k]*f[s|(1<<k)] }) 移项可得: segma{ p[i] }f[s] = 1 + segma{ p[i]*f[s|(1<<i) },…
Walk Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1083    Accepted Submission(s): 694Special Judge Problem Description I used to think I could be anything, but now I know that I couldn't do…
/* 题目大意:注册一款游戏需要排队,一共有四种事件: 1.注册失败,队列不变,概率为p1 2.注册过程中断开连接,正在注册的人排到队列的末尾,概率为p2 3.注册成功,移出队列,概率为p3 4.服务器暂停服务,概率为p4 求一个人他前面有不超过k-1个人的时候暂停服务的概率. 从前往后推,统计答案太麻烦,所以选择从后往前推. dp(i,j)表示一共i个人,他排在j位置的达到目标状态的概率. j==1 dp[i][j]=dp[i][j]*p1+dp[i][i]*p2+p4; 1<j<=k dp…
题意:Michael has a telecontrol robot. One day he put the robot on a loop with n cells. The cells are numbered from 1 to n clockwise. At first the robot is in cell 1. Then Michael uses a remote control to send m commands to the robot. A command will mak…
#include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> #include <queue> #include <vector> using namespace std; ; ; const int INF = 0x3f3f3f; double dp[maxn]; int map[maxn];…
/* 题目大意:有n个房间由n-1个隧道连接起来,从1号房间开始, 每个节点i都有三种可能: 1.被杀死,回到节点1,概率为ki; 2.找到出口,离开迷宫,概率ei; 3.与它相连的有m个房间,到任意相连房间的概率(1-ki-ei)/m; 求走出迷宫要走房间个数的期望. E[i]表示在节点i处的期望值,E[1]即为答案,从后往前推. E[1]=k1*E[1]+sigma(E[j])*(1-k1-e1)/childsize[i]+(1-k1-e1) 非叶子节点: E[i]=ki*E[1]+(E[f…
对于每个点两个方向(两头只有一个方向)建一个点,然后预处理出每个点走k(1≤k≤n)k(1\le k\le n)k(1≤k≤n)到哪个点,列出方程式高斯消元就行了.记得前面bfsbfsbfs出那些点不可到,他们的期望没有意义. 方程式比较显然: E[i]=∑k=1mpk∗(E[to(i,k)]+k)E[i]=\sum_{k=1}^mp_k*(E[to(i,k)]+k)E[i]=k=1∑m​pk​∗(E[to(i,k)]+k) (to(i,k)to(i,k)to(i,k)表示iii点走kkk步到的…
H - LOOPS Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit cid=60444#status//H/0" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" style="display:inline-block; positi…
简单的概率DP入门题 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #include<iomanip> #include<cmath> #include<cstring> #include<vector> #define ll __int64 #define pi acos(-1.0) #define MAX 1003 using namesp…
期望概率DP简单题 从[1,1]点走到[r,c]点,每走一步的代价为2 给出每一个点走相邻位置的概率,共3中方向,不动: [x,y]->[x][y]=p[x][y][0] ,  右移:[x][y]->[x][y+1]=p[x][y][1];  左移:[x][y]->[x+1][y]=p[x][y][2]; 问最后走到[r,c]的期望 dp[i][j]为从[i][j]点走到[r][c]的期望 有方程: dp[i][j]=    (dp[i][j]+2)*p[i][j][0]  +   (d…
LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 8453    Accepted Submission(s): 3397 Problem Description Akemi Homura is a Mahou Shoujo (Puella Magi/Magical Girl). Homura wants to help h…
HDU 3853    LOOPS 题目大意是说人现在在1,1,需要走到N,N,每次有p1的可能在元位置不变,p2的可能走到右边一格,有p3的可能走到下面一格,问从起点走到终点的期望值 这是弱菜做的第一道概率DP的题,首先是看了一下有关概率DP的资料,大概知道一般球概率就是从起点推到终点,求期望就是从终点推到起点 考虑这题的做法,其实很简单设DP[i][j]表示从i,j到达终点所需时间的期望值 DP[i][j] =p1 *  DP[i][j] + p2 * DP[i][j+1] + p3 * D…
http://acm.split.hdu.edu.cn/showproblem.php?pid=3076 ssworld VS DDD Problem Description   One day, sssworld and DDD play games together, but there are some special rules in this games.They both have their own HP. Each round they dice respectively and…
http://acm.split.hdu.edu.cn/showproblem.php?pid=4405 Aeroplane chess Problem Description   Hzz loves aeroplane chess very much. The chess map contains N+1 grids labeled from 0 to N. Hzz starts at grid 0. For each step he throws a dice(a dice have six…
ATM Mechine 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5781 Description Alice is going to take all her savings out of the ATM(Automatic Teller Machine). Alice forget how many deposit she has, and this strange ATM doesn't support query deposit. T…
11年北京现场赛的题目.概率DP. 公式化简起来比较困难....而且就算结果做出来了,没有考虑特殊情况照样会WA到死的.... 去参加区域赛一定要考虑到各种情况.   像概率dp,公式推出来就很容易写出来了. /* HDU 4098 题意:有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有一下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排在队列的最后(概率为p2) 3.激活成功,离开队列(概率为p3) 4.服务器瘫痪,…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5378 题意:一棵n个节点的树.对其节点进行标号(1~n).求恰好存在k个节点的标号是其节点所在子树的最大值的方案数. 解法: 首先,总共有n!中标号方案.而如果求出n个节点中出现k个上述节点的概率p.方案数等于n!* p. dp[i][j] 表示钱i个节点有j个上述节点的概率.转移较容易推出. dp[i][j] = dp[i-1][j] * (c[i]-1) / c[i] + dp[i-1][j-1…
http://acm.hdu.edu.cn/showproblem.php?pid=1099 最最简单的概率dp,完全是等概率转移. 设dp[i]为已有i张票,还需要抽几次才能集齐的期望. 那么dp[n]=0,因为我们已经集齐了. \[dp[i]=(\frac{i}{n}*dp[i]+\frac{n-i}{n}*dp[i+1])+1\] 移项得答案. 然后写个分数类,注意约分. #include<bits/stdc++.h> using namespace std; typedef long…
题意:你从0开始,要跳到 n 这个位置,如果当前位置是一个飞行点,那么可以跳过去,要不然就只能掷骰子,问你要掷的次数数学期望,到达或者超过n. 析:概率DP,dp[i] 表示从 i  这个位置到达 n 要掷的次数的数学期望.然后每次掷的数就是1-6,概率都相等为1/6,再特殊标记一下飞行点,那么就容易写过了. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #in…