//dp[i][j]表示当前队伍中第一个人已经赢了i次,当前队伍中第j个人能赢的概率。
//答案就是dp[0][k]
//当j=1时,dp[i][j]=1/4*dp[i+1][j]+3/4*dp[1][n-2] //该人要么赢,要么输,输的话,后面有两个人排在他后面,所以他在n-2的位置。
//当j=2时,dp[i][j]=1/4*dp[i+1][n-2]+1/4*dp[1][1]+2/4*dp[1][n-1]
//当j=3时,dp[i][j]=1/4*dp[i+1][n-1]+1/4*dp[1][n-1]+1/4*dp[1][1]+1/4*dp[1][n]
//当j=4时,dp[i][j]=1/4*dp[i+1][n]+2/4*dp[1][n]+1/4*dp[1][1];
//当j>4时,dp[i][j]=1/4*dp[i+1][j-3]+3/4*dp[1][j-3]
//另外,dp[m][1]=1,表示队伍中第一个人已经赢了m次,结束。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <queue>
#include <vector>
#include <map>
#define pb push_back
#define mp make_pair
#define eps 1e-9
#define zero(x) (fabs(x)<eps)
#define pi acos(-1.0)
#define f1 first
hdu 4326 高斯消元
最新推荐文章于 2019-03-25 21:35:30 发布