poj 3071 概率dp】的更多相关文章

转自:cxlove 题目:有2^n个队,相邻的两两打淘汰赛,,求最后哪个队夺冠的概率最大 dp[i][j]表示第i轮的时候,第j去支队伍赢的概率. 那么dp[i][j]的前提就是i-1轮的时候,j是赢的,而且第i轮赢了对方 接下来就是找到第i轮的时候,他的可能队手 通过二进制可以发现规律,所有高位是一样的,第i位刚好相反,所以用位运算可以巧妙解决,见代码 dp[i][j]=sigma(dp[i-1][j]*dp[i-1][k]*p[j][k]) #include<stdio.h> #inclu…
链接:http://poj.org/problem?id=3071 题意: 有 2^n 支足球队,编号 1~2^n,现在给出每支球队打败其他球队的概率,问哪只球队取得冠军的概率最大? 思路: 设dp[i][j] 为第 i 轮, 第 j  支球队胜的概率~ 那么dp[i][j]=dp[i-1][j] * ∑dp[i-1][k]*p[j][k] , k  为相应轮 j 可能面对的对手~ 那么在第 i 轮, 第 j 队的对手怎样尽快求得呢, (j从0开始)~ 对于第一轮,其可能的对手只有一个 为 j^…
http://poj.org/problem? id=3071 推方程不难,可是难在怎么算 dp[i][j]表示第i场时第j仅仅队伍存活下来的概率 方程:dp[i][j]=sigma(dp[i-1][j]*p[j][k]*dp[i-1][k]) j,k在同一场的条件:if(((k>>(i-1))^1)==(j>>(i-1)))即推断k的第i位前的数没有比过的是否与j的在同一棵子树上.(i从1取,j,k从0取) 题解參考 http://blog.csdn.net/pbj1203/ar…
题目链接: http://poj.org/problem?id=2096 题目大意:n种bug,s个子系统.每天随机找一个bug,种类随机,来自系统随机.问找齐n种bug,且每个子系统至少有一个bug的期望天数. 解题思路: - -.题目像一坨屎. 其中"且每个子系统至少有一个bug"比较坑爹,其实意思就是找出s个bug就行了. dp[i][j]表示已找到i种bug,且j个系统有bug的期望. 它可以由四个状态推到: ①dp[i][j], 当前找的bug,种类重复,且系统重复.概率为(…
主要的子问题是每一个队伍有一个做出题目的概率,求做出k个题目的概率.简单的简单的组合数DP.想清楚即可. 1: #include <iostream> 2: #include <cstdio> 3: #include <cstring> 4: using namespace std; 5:   6: double dp[35][35]; 7: double p[1005][35]; 8: int main() 9: { 10: // freopen("1.tx…
给定2^n 支足球队进行比赛,n<=7. 队伍两两之间有一个获胜的概率,求每一个队伍赢得最后比赛的概率是多少? 状态其实都是很显然的,一开始觉得这个问题很难啊,不会.dp[i][j] 表示第i支队伍赢得前j轮比赛的概率.(这个题目处理区间的时候比较恶心,小心点即可). 1:   2: #include <iostream> 3: #include <cstdio> 4: #include <cstring> 5: #include <map> 6: #…
题意: 一条路上有n个地雷,你从1开始走,单位时间内有p的概率走一步,1-p的概率走两步,问安全通过这条路的概率 解析: 很容易想到 dp[i] = p * dp[i-1] + (1 - p) * dp[i]; 然而...t,但这个式子明显可以用矩阵快速幂加个氮气一下加速一下... 把所有的点输入之后 sort一下,那么就能把这条路分成很多段 每一段以地雷为分界线 1 - x[0]  x[0]+1 - x[1]  x[1]+1 - x[2] ````````` 然后求出安全通过每一段的概率  …
题意:在一条布满地雷的路上,你现在的起点在1处.在N个点处布有地雷,1<=N<=10.地雷点的坐标范围:[1,100000000]. 每次前进p的概率前进一步,1-p的概率前进1-p步.问顺利通过这条路的概率.就是不要走到有地雷的地方. 链接:点我   设dp[i]表示到达i点的概率,则 初始值 dp[1]=1. 很容易想到转移方程: dp[i]=p*dp[i-1]+(1-p)*dp[i-2]; 但是由于坐标的范围很大,直接这样求是不行的,而且当中的某些点还存在地雷.     N个有地雷的点的…
有 T(1<T<=1000) 支队伍和 M(0<M<=30) 个题目,已知每支队伍 i 解决每道题目 j 的的概率 p[i][j],现在问:每支队伍至少解决一道题,且解题最多的队伍的题目数量不少于 N(0<N<=M) 的概率是多少? p[i][j]表示第i个队伍做对第j题的概率.dp[i][j][k]表示第i个队伍在前j题中做对了k道的概率.dp[i][j][k] = dp[i][j-1][k-1]*(p[i][j])+dp[i][j-1][k]*(1-p[i][j])…
Check the difficulty of problems Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5750   Accepted: 2510 Description Organizing a programming contest is not an easy job. To avoid making the problems too difficult, the organizer usually exp…