P2719 搞笑世界杯 (期望dp

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
using VI = vector<int>;

double dp[2000][2000];
int n;
//求dp[2][0]
//dp[0][2]
//期望dp要从终末态,向起始态转移
//dp[a][b] - > dp[a][b-1]  or dp[a-1][b]
//dp[a][b] = 1/2 * dp[a][b+1] + 1/2 * dp[a+1][b]
int main(){
    cin>>n;
    n/=2;
    dp[n][n] = 1;
    for(int i = n ; i >= 1 ; i--){
        for(int j = n ; j >= 1 ; j--){
            dp[i][j-1] += dp[i][j] / 2.0;
            dp[i-1][j] += dp[i][j] / 2.0;
        }
    }
    double res  = 0;

    for(int i = 2; i <= n ; i++){
        res += dp[i][0] + dp[0][i];
    }  
    printf("%.4f" , res);


}

考虑一种票全部卖完,另一种有大于等于2 张的所有情况都为合理情况

dp[i][j] 可以 等概率的转移到 dp[i-1][j] 和 dp[j][i-1]

相关推荐
wuminyu12 小时前
专家视角看Lambda表达式的原理解析
java·linux·c语言·jvm·c++
Run_Teenage12 小时前
算法:线段树
算法
Westward-sun.12 小时前
YOLOv2算法全方位解析:从BatchNorm到聚类先验框的九大改进
算法·yolo·聚类
扶苏xw12 小时前
【离散化算法】
算法
码之气三段.12 小时前
Codeforces Round 1095 (Div. 2) 补题
算法
ximu_polaris12 小时前
设计模式(C++)-行为型模式-命令模式
c++·设计模式·命令模式
6Hzlia12 小时前
【Hot 100 刷题计划】 LeetCode 189. 轮转数组 | C++ 三次反转经典魔法 (O(1) 空间)
c++·算法·leetcode
wuweijianlove12 小时前
算法可扩展性建模与渐进性能分析的技术7
算法
淀粉肠kk13 小时前
【C++11】智能指针详解
开发语言·c++
不想写代码的星星13 小时前
COW(Copy-on-Write):开抄开抄,哎嘿,我装的
开发语言·c++